cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu
😤 Ce billet a été édité le : 2022-11-07

« vi » pour forcer l’accès en écriture : l’astuce

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, $ est le signe indiquant la fin de ligne dans les expressions régulières.
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 évidemment d’utiliser la commande sudo depuis votre shell (bash).

sudo vi /etc/fstab


Sauvegarder d’un fichier nécessitant les droits « root » après coup.

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 - 2023 | 🏠 Accueil du domaine | 🏡 Accueil du blog