: wq dans Vim ne sauvegarde pas

8

J'essaie d'utiliser :wqpour enregistrer un fichier texte que j'ai édité dans Vim, mais quand j'entre, :wqj'obtiens l'erreur

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

Quand j'ajoute !à :wqaimer :wq!, j'obtiens ceci:

"/etc/dhcp/dhcpd.conf"

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

Le fichier que je souhaite modifier se trouve dhcpdsur le /etc/dhcpdchemin.

Comment puis-je faire ceci?

Mohammad Reza Rezwani
la source
Préférez :xou ZZpour quitter et enregistrer. Il n'écrira qu'en cas de changement.
Hauleth

Réponses:

14

Vous devez ouvrir le fichier à l'aide des autorisations de superutilisateur comme suit:

sudo vi /etc/dhcp/dhcpd.conf

éditez le fichier en appuyant sur ipuis enregistrez et quittez en appuyant sur Escpuis sur :wqou :xou simplement :wpour enregistrer.


Merci à Riking d' avoir suggéré sudoedit: vous pouvez utiliser sudoedit /path/to/file/filenamepour éditer des fichiers appartenant à root plutôt que d'utiliser sudo <editor> /pat/to/file/filename. Ceci est utile pour les machines de niveau entreprise ou les machines de production puisque sudoedit se connecte à /var/log/auth.log.

Si vous souhaitez modifier l'éditeur par défaut de sudoedit, procédez comme suit:

sudo update-alternatives --config editor

puis appuyez sur Returnet choisissez l'éditeur de votre choix et appuyez à nouveau sur Return.


Voir aussi: Une discussion sur redit sur les raisons pour lesquelles sudoedit peut être avantageux

jobin
la source
3
Je préfère sudoeditpour ces situations - il crée une copie temporaire, exécute l'éditeur et copie le résultat. Si vous avez précédemment choisi nanocette commande, exécutez EDITOR=vi sudoedit /etc/file.
Riking
1
@Riking: Merci pour sudoedit, je ne savais même pas que cela existait. Cependant, je suis tombé sur cela en cherchant sur Google sudoedit. Je vais le suggérer, mais laissez-le à l'utilisateur s'il le juge nécessaire.
jobin
sudoeditreprend également la EDITORvariable, il est plus facile de le définir que de configurer des alternatives
muru
9

/etcse compose de tous les fichiers de configuration afin de modifier les fichiers sous /etcvous avez besoin des autorisations de super-utilisateur mais parfois nous oublions d'utiliser sudo. mais à ce moment là on peut aussi utiliser

:w !sudo tee %

puis entrez votre mot de passe administrateur

:q!

pour sortir avec succès

Aditya Jangid
la source
1
Vous pouvez ajouter cmap w!! w !sudo tee > /dev/null %à votre .vimrcpour permettre l'enregistrement via cette méthode avec :w!!. Si vous souhaitez savoir pourquoi cette méthode fonctionne, consultez stackoverflow.com/questions/2600783/…
Gerhard Burger