: wq in Vim non salva


8

Sto cercando di utilizzare :wqper salvare un file di testo che ho modificato in Vim, ma quando accedo :wqottengo l'errore

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

Quando aggiungo !a :wqpiacere :wq!, ottengo questo:

"/etc/dhcp/dhcpd.conf"

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

Il file che voglio modificare è dhcpdsul /etc/dhcpdpercorso.

Come posso fare questo?


Preferisci :xo ZZper uscire e salvare. Scriverà solo su modifica.
Hauleth,

Risposte:


14

Devi aprire il file usando le autorizzazioni del superutente come segue:

sudo vi /etc/dhcp/dhcpd.conf

modificare il file premendo ie quindi salvare ed uscire premendo Esce quindi o :wqo :xo solo :wper salvare.


Grazie a Riking per aver suggerito sudoedit: è possibile utilizzare sudoedit /path/to/file/filenameper modificare i file di proprietà di root anziché utilizzare sudo <editor> /pat/to/file/filename. Ciò è utile per macchine di livello aziendale o macchine di produzione poiché sudoedit accede /var/log/auth.log.

Se si desidera modificare l'editor predefinito per sudoedit, attenersi alla seguente procedura:

sudo update-alternatives --config editor

quindi premere Returne selezionare l'editor desiderato e premere nuovamente Return.


Vedi anche: Una discussione sul redit sul perché sudoedit può essere vantaggioso


3
Preferisco sudoeditper queste situazioni: crea una copia temporanea, esegue l'editor e copia il risultato. Se in precedenza hai scelto nanoquel comando, esegui EDITOR=vi sudoedit /etc/file.
Riking

1
@Riking: Grazie per sudoedit, non sapevo nemmeno che esistesse. Tuttavia, ci siamo imbattuti in questo mentre cercavo su Google sudoedit. Lo suggerirò, ma lo lascerò all'utente se lo riterrà necessario per l'uso.
impiego

sudoeditrileva anche la EDITORvariabile, è più facile impostarlo che configurare le alternative
muru

9

/etcè composto da tutti i file di configurazione, quindi per modificare i file sotto di /etcte sono necessarie le autorizzazioni del superutente ma a volte ci dimentichiamo di usarlo sudo. ma a quel tempo possiamo anche usare

:w !sudo tee %

quindi inserire la password dell'amministratore

:q!

per uscire con successo


1
Puoi aggiungere cmap w!! w !sudo tee > /dev/null %al tuo .vimrcper consentire il salvataggio tramite questo metodo con :w!!. Se sei interessato al perché questo metodo funziona, vedi stackoverflow.com/questions/2600783/…
Gerhard Burger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.