cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu
l’astuce de vi pour forcer l’écriture

vi est un Ă©diteur de texte en mode texte plein disponible sur Linux et fonctionnement dans un terminal. Il permet en particulier d’éditer des documents textes Ă  distance.

Fonctionnement

vi fonctionne dans 3 modes différents, le mode commande, le mode insertion et le mode sélection.

  • Le mode insertion correspond au mode dans lequel on tape le texte Ă  saisir.
  • Le mode commande permet de se dĂ©placer, de faire des recherches et Ă©ventuellement remplacements, de supprimer du texte et de passer dans les autres modes.
  • Le mode sĂ©lection permet de sĂ©lectionner du texte librement, ligne par ligne ou sous forme de zone rectangulaire, et de le placer dans le presse-papiers (« couper » et « copier »).

vi fait la diffĂ©rence entre minuscules et majuscules. D’autre part, on peut donner un facteur de rĂ©pĂ©tition Ă  quasiment toutes les commandes en tapant ce nombre avant la commande (ex. 20k remonte de 20 lignes): il faut donc faire attention Ă  ce qu’on fait dĂšs qu’on s’approche du pavĂ© numĂ©rique !

Rappel des principales commandes

Commande Description
0 (zéro) Aller en début de ligne
$ Aller en fin de ligne
k Ligne précédente
j Ligne suivante
h CaractÚre précédent
l CaractĂšre suivant
b Mot précédent
w Mot suivant
Ctrl-B Page précédente
Ctrl-F Page suivante
nG Aller à la ligne n. Exemple : 1G va sur la premiÚre ligne
G Aller Ă  la derniĂšre ligne
x Supprime le caractĂšre sous le curseur
dd Supprime la ligne courante et la copie dans le presse-papiers
nd Idem avec n lignes
J Fusionne la ligne courante et la suivante
yy Copie la ligne courante dans le presse-papiers
ny Idem avec n lignes
P Colle le presse-papiers avant la position courante
p Colle le presse-papiers aprĂšs la position courante
v Commence une sélection en mode caractÚres
V Commence une sélection en mode lignes
Ctrl-V Commence une sélection en mode « rectangulaire »
d Supprime la sélection et la copie dans le presse-papiers
y Copie la sélection dans le presse-papiers
c Supprime la sélection et passe en mode insertion
i Passe en mode insertion avant la position courante
a Passe en mode insertion aprĂšs la position courante
o Passe en mode insertion sur une nouvelle ligne sous la ligne courante
Esc Quitte le mode insertion
u Annule la derniĂšre commande
r Remplace le caractÚre sous le curseur par le prochain caractÚre tapé
~ Convertis le caractùre sous le curseur en majuscule si c’est une minuscule et vice-versa
/texte Recherche en avant du texte indiqué
?texte Recherche en arriÚre du texte indiqué
n Recherche l’occurrence suivante
N Recherche l’occurrence prĂ©cĂ©dente
:%s/chercher/remplacer Recherche avec remplacement dans tout le fichier
:w Sauvegarde le fichier courant
:wfichier Écrit le document dans le fichier indiquĂ©
:rfichier Inclut le fichier indiqué à partir de la position courante
:q! Quitter en annulant les modifications
ZZ (ou :wq) Quitter en enregistrant les modifications

Éditer un fichier nĂ©cessitant les droits root.

Le plus simple est Ă©videment d’utiliser la commande sudo depuis votre shell (bash).

sudo vi /etc/fstab

Sauvegarder d’un fichier nĂ©cessitant les droits root aprĂšs coĂ»t.

Cependant il arrive que l’on ne rĂ©alise qu’aprĂšs la modification (lors de la sauvegarde) que le fichier est protĂ©gĂ©.

Mais votre travail n’est pas perdu, depuis l’éditeur en mode commande (en utilisant la touche ESC/ECHAP) vous pouvez utiliser le groupe d’instruction suivant :

:w !sudo tee %

:w permet d’écrire le contenu de l’éditeur vers un fichier (sans aucune option il s’agit du fichier courant, le cas d’usage standard).

La commande w permet Ă©galement d’écrire vers un nouveau fichier (c’est dans ce cas d’usage). La commande :w file.txt permet de sauvegarder le contenu de l’éditeur dans le fichier file.txt.

L’astuce ici consiste Ă  substituer le nom de fichier la commande sudo (pour Ă©lever les privilĂšges) suivit de la commande tee et le % de choisir comme destination de la commande tee le nom du fichier d’origine.

኿


â„č 2006 - 2020 | 🕾 Retour Ă  l'accueil du domaine | 🏡 Retour Ă  l'accueil du blog