Quelles sont les limitations en mode lecture seule qui vous dérangent? Si vous voulez simplement écrire le fichier, même si vous l’ouvrez en lecture seule, ajouter un a !à la wcommande suffira, comme l’a déclaré Michael.
Bananguin
1
@ user1129682 c'est juste le désagrément de ne pas oublier de mettre un point d'exclamation à wchaque fois que je souhaite enregistrer. heh
Pseudonyme
Réponses:
44
Vous pourriez faire ceci:
:set noro
Cela désactive l'indicateur en lecture seule, mais si vous ne pouvez toujours pas écrire dans le fichier sous-jacent, vim ne pourra toujours pas y écrire.
En plus de la réponse de Michael Mrozek , vous pouvez ajouter une ligne à votre .vimrcqui vous permet d'écrire dans un fichier que vous avez oublié d'ouvrir avec des autorisations élevées:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
Si le fichier est en lecture seule, il vous suffit d'entrer :w!!, il vous sera demandé votre mot de passe et le fichier sera écrit avec succès.
Alors :set noroque le travail est effectué, il ne vérifie pas si le fichier est ouvert par une autre instance de vim ni ne met à jour le fichier s'il est modifié en externe.
Pour le rendre éditable et vérifier les fichiers d'échange (qui est le fichier par défaut ouvrant un fichier avec vim), utilisez simplement la commande d'édition (: help edit):
:e
Notez que si le fichier a été manipulé depuis (même en dehors de vim), il mettra à jour les modifications dans le tampon courant (ce que je trouve normalement souhaitable).
J'y vais, bien qu'un peu tard, peut-être que vous ayez déjà résolu votre doute;) Je n'ai vu aucun commentaire d'une manière que je connaisse avec vim , alors je l'ajoute:
Une fois que vous éditez un fichier, vous appuyez sur :wou :wqet vous voyez le message gênant " L’option " E45 'en lecture seule "est activée (ajoutez! Pour remplacer) "
Vous pouvez taper
:w !sudo tee %
w écrit le tampon,
!sudo appelle la coquille avec sudo,
teeredirige la sortie de vim :wvers la sortie avec tee, et
% est le nom de fichier actuel
Et cela devrait faire l'affaire. Notez que cela vous invitera à recharger le fichier dans vim, pour ce que vous devez appuyer sur L
!
à law
commande suffira, comme l’a déclaré Michael.w
chaque fois que je souhaite enregistrer. hehRéponses:
Vous pourriez faire ceci:
Cela désactive l'indicateur en lecture seule, mais si vous ne pouvez toujours pas écrire dans le fichier sous-jacent, vim ne pourra toujours pas y écrire.
la source
:set ro
.view
mais décidez ensuite de le modifier.Vous pouvez exécuter
chmod
depuis vim:!
signifie exécuter une commande shell et%
correspond au nom de fichier actuel. Vous pouvez aussi simplement forcer l'écriture de fichier:la source
En plus de la réponse de Michael Mrozek , vous pouvez ajouter une ligne à votre
.vimrc
qui vous permet d'écrire dans un fichier que vous avez oublié d'ouvrir avec des autorisations élevées:Si le fichier est en lecture seule, il vous suffit d'entrer :w!!, il vous sera demandé votre mot de passe et le fichier sera écrit avec succès.
la source
Alors
:set noro
que le travail est effectué, il ne vérifie pas si le fichier est ouvert par une autre instance de vim ni ne met à jour le fichier s'il est modifié en externe.Pour le rendre éditable et vérifier les fichiers d'échange (qui est le fichier par défaut ouvrant un fichier avec vim), utilisez simplement la commande d'édition (: help edit):
Notez que si le fichier a été manipulé depuis (même en dehors de vim), il mettra à jour les modifications dans le tampon courant (ce que je trouve normalement souhaitable).
la source
J'y vais, bien qu'un peu tard, peut-être que vous ayez déjà résolu votre doute;) Je n'ai vu aucun commentaire d'une manière que je connaisse avec vim , alors je l'ajoute:
Une fois que vous éditez un fichier, vous appuyez sur
:w
ou:wq
et vous voyez le message gênant " L’option " E45 'en lecture seule "est activée (ajoutez! Pour remplacer) "Vous pouvez taper
w
écrit le tampon,!sudo
appelle la coquille avec sudo,tee
redirige la sortie devim :w
vers la sortie avec tee, et%
est le nom de fichier actuelEt cela devrait faire l'affaire. Notez que cela vous invitera à recharger le fichier dans vim, pour ce que vous devez appuyer sur L
la source