C'est un problème de convivialité qui m'arrive souvent:
J'ouvre un fichier système en lecture seule avec vim, même en le modifiant, parce que je ne suis pas assez attentif ou parce que le vim sur le système est mal configuré. Une fois mes modifications effectuées, je suis obligé de les écrire dans un fichier temporaire ou de les perdre, car: w! ne fonctionnera pas.
Existe-t-il une commande vim (: W !!!) qui vous permet d'écrire le tampon actuel en tant que super-utilisateur? (Vim vous demanderait naturellement votre mot de passe sudo ou su)
sudoedit
commande. Cette question est plus axée sur l'oubli de le taper en premier lieu et l'élévation après le démarrage de l'éditeur.Réponses:
Explication: Avec
!
, vous pouvez exécuter des programmes. En le préfixant avec: w, le contenu du fichier (ce que vous avez dans vim, pas le fichier d'origine, plus précisément: le tampon) sera donné à la commande sur l'entrée standard.%
est remplacé par le nom du fichier et>/dev/null
évite que le contenu ne soit à nouveau imprimé à l'écran (ce qui est le comportement habituel detee
).J'ai trouvé un moyen encore plus court.
dd
n'imprime pas sur stdout pour que vous puissiez enregistrer la chose nulle.
C'est la même chose pour
:r
, qui insère la sortie de la commande donnée, vous pouvez donc par exemple insérer la date actuelle dans votre fichier en utilisant:r !date
la source
Essayer:
la source