: 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?


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


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.