: wq w Vimie nie zapisuje


8

Próbuję użyć :wqdo zapisania pliku tekstowego, który edytowałem w Vimie, ale kiedy wchodzę, pojawia :wqsię błąd

E45: 'readonly' option is set (add ! to override)`  

Kiedy dodam !do :wqpolubienia :wq!, otrzymuję to:

"/etc/dhcp/dhcpd.conf"

"/etc/dhcp/dhcpd.conf" E212: Can't open file for writing

Plik, który chcę edytować, znajduje dhcpdsię na /etc/dhcpdścieżce.

W jaki sposób mogę to zrobić?


Preferuj :xlub ZZwyjdź i zapisz. Będzie pisać tylko przy zmianie.
Hauleth

Odpowiedzi:


14

Musisz otworzyć plik przy użyciu uprawnień administratora w następujący sposób:

sudo vi /etc/dhcp/dhcpd.conf

Edytuj plik, naciskając i, a następnie zapisz i zakończ naciskając Esca następnie albo :wqalbo :xalbo po prostu :wzapisać.


Podziękowania dla Rikinga za sugestie sudoedit: możesz używać sudoedit /path/to/file/filenamedo edycji plików należących do roota zamiast używać sudo <editor> /pat/to/file/filename. Jest to przydatne w przypadku maszyn na poziomie przedsiębiorstwa lub maszyn produkcyjnych, ponieważ sudoedit loguje się do /var/log/auth.log.

Jeśli chcesz zmienić domyślny edytor sudoedit, wykonaj następujące czynności:

sudo update-alternatives --config editor

a następnie naciśnij Returni wybierz edytor do wyboru, a następnie ponownie naciśnij Return.


Zobacz także: Dyskusja na temat redit dotycząca tego, dlaczego sudoedit może być korzystny


3
Wolę sudoeditw takich sytuacjach - tworzy tymczasową kopię, uruchamia edytor i kopiuje wynik. Jeśli wcześniej wybrałeś nanodla tego polecenia, uruchom EDITOR=vi sudoedit /etc/file.
Riking

1
@Riking: Dzięki sudoedit, nawet nie wiedziałem, że istnieje. Jednak natknąłem się na to podczas google sudoedit. Zasugeruję, ale pozostaw to użytkownikowi, jeśli uzna to za konieczne.
praca w

sudoeditrównież odbiera EDITORzmienną, łatwiej to ustawić niż konfigurować alternatywy
muru

9

/etcskłada się ze wszystkich plików konfiguracyjnych, więc do edycji tych plików /etcpotrzebujesz uprawnień administratora, ale czasami zapominamy o ich użyciu sudo. ale w tym czasie możemy również użyć

:w !sudo tee %

następnie wprowadź hasło administratora

:q!

wyjść pomyślnie


1
Możesz dodać cmap w!! w !sudo tee > /dev/null %do swojego, .vimrcaby umożliwić zapisywanie za pomocą tej metody za pomocą :w!!. Jeśli jesteś zainteresowany, dlaczego ta metoda działa, zobacz stackoverflow.com/questions/2600783/...
Gerhard Burger
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.