LVM
Insertion (mode commande et passer en mode édition)
- Activer le mode insertion → i
- Insérer au début de la ligne → I (i majuscule)
- Activer le mode insertion, un caractère après le curseur → a
- Insérer en fin de ligne → A
- Insérer une ligne (en dessous du curseur) → o
- Insérer une ligne (au dessus du curseur) → O
- Quitte le mode édition → Echap
Quitter / Enregistrer (mode commande)
- Enregistrer SANS quitter → :w
- Quitter en enregistrant les modifications → :wq ou :x ou ZZ
- Quitter sans enregistrer les modifications → :q!
Le déplacement (mode commande)
Il existe d’autres modes d’édition, comme le mode remplacement.
- Aller en début de ligne → 0
- Aller en fin de ligne → $
- Ligne précédente (ou monter) → k (flèche haut avec vim)
- Ligne suivante (ou descendre) → j (flèche bas avec vim)
- Caractère précédent (ou aller à gauche) → h (flèche gauche avec vim)
- Caractère suivant (ou aller à droite) → l (flèche droite avec vim)
- Mot précédent → b
- Mot suivant → w
- Page précédente → Ctrl+B (ou Page précédente avec vim)
- Page suivante → Ctrl+F(ou Page suivante avec vim)
- Aller à la ligne n → ngg ou nG (où n est le numéro de ligne)
- Aller à la première ligne : gg
- Aller à la dernière ligne → G
Remplacer (mode commande et passer en mode édition)
A titre personnel, je n’utilise que très rarement ce mode de remplacement.
- Remplacer le caractère sous le curseur → r puis le caractère à insérer
- Remplacer avec le texte saisi → R puis le texte à remplacer
- Effacer la suite de la ligne et passer en mode insertion → C
- Quitte le mode remplacement → Echap
Copier / Couper / Coller (mode commande)
- Copier la ligne courante → yy
- Copier n lignes à partir de la ligne courante → nyy (Remplacer n par un nombre)
- Coller (ligne en dessous le curseur) → p
- Coller (ligne au dessus le curseur) → P
- Couper la ligne courante → dd
- Couper n lignes à partir de la ligne courante → ndd (Remplacer n par un nombre)
Effacer (mode commande)
- Effacer le caractère courant → x
- Effacer la ligne courante → dd
- Effacer n lignes à partir de la ligne courante → ndd (Remplacer n par un nombre)
- Effacer le mot sous le curseur → dw
- Effacer du curseur à la fin de la ligne → d$
- Effacer du début de la ligne au curseur → d^
Rechercher (mode commande)
- Recherche en avant du mot texte → /texte
- Recherche en arrière du mot texte → ?texte
- Aller à l’occurrence suivante → n
- Aller à l’occurrence précédente → N
Divers (mode commande)
- Annuler la dernière action → u
- Modifier la casse du caractère → ~ (la tilde avec AltGR+2)
Remplacer du texte
Pour remplacer du texte sur 1 ligne :
:s/ancienmot/nouveaumot/g
Pour remplacer 1 mot par un autre dans tout le fichier :
:%s/ancienmot/nouveaumot/g
commenter du texte
pour commenter :
s/^/#
pour decommenter :
s/^#//
pour un bloque, le fait en mode visuel
CAS SPECIAL : Supprimer le caractère ^M avec vi
Lorsqu’un fichier est édité sur un système Windows/DOS à la fin de chaque ligne le caractère « ^M » apparait.
Si vous souhaitez supprimer ce caractère sur l’ensemble du fichier avec l’éditeur vi voici la commande à utiliser:
:%s/^M/\r/g
Il ne faut pas saisir ^M mais procéder ainsi :
:%s/[ctrl+V][ctrl+M]/\r/g
Personnalisation et confort vim
Les commandes avancées du mode commandes
- Afficher les numéros de ligne → :set number ( pour désactiver → :set nonumber )
- Afficher la coloration syntaxique → :syntax on ( pour désactiver → :syntax off )
- Entrer et sortir du mode “paste” (coller un texte indenté) → :sset paste ( pour désactiver → :set nopaste )
- Indentation automatique → :set autoindent( pour désactiver → :set noautoindent )
- Colorer toutes les occurrences d’un mot → ***** sur le mot qui est sous le curseur (pour désactiver : :noh )
- Activer la coloration syntaxique d’un langage particulier → :set syntax=html
Changer la coloration syntaxique
Par défaut, la coloration syntaxique de vim peut ne pas être terrible (commentaires bleu très foncé).
Vous pouvez changer les couleurs avec la commande :color theme
Pour lister les thèmes (remplacer le 81 par la version de vim) :
ls /usr/share/vim/vim81/colors/
Personnellement, j’aime bien le thème desert (couleurs similaires à nano).
Rendre persistantes les données
Pour rendre persistantes les informations, on peut éditer le fichier ~/.vimrc et y ajouter les lignes tapées.
set number
set autoindent
syntax on
color desert
Programmation : sauter entre une ouverture et une fermeture de parenthèse, accolade
Si dans VIM, vous avez du code long, et que vous souhaitez aller d’une accolade à l’autre, il est possible de s’y rendre directement avec % en mode commande.
Exemple :
if ( $toto == $tata ) {
echo "truc";
}
En se positionnant sur le } et en appuyant sur %, on revient au { en fin de ligne où il y a le texte $toto == $tata !
interagir entre vim et bash
Si on veut par exemple exécuter le script qu’on est en train d’écrire dans vim : :! ./%
Si on veut enregistrer un fichier système alors qu’on l’a édité en tant qu’utilisateur simple : :w !sudo tee %
Insérer le résultat d’une commande bash (exemple avec ’ls -l / | grep bin’ ) dans vim en dessous de la ligne courante ; :r ! ls -l / | grep bin
Afficher les caractères invisibles (fin de ligne, tabulations)
Pour afficher les caractères invisibles, par exemple pour mieux repérer les tabulations des espaces, on pourra utiliser :
:set list
Afficher des colonnes virtuelles
Dans un fichier, on peut afficher des repères à un certain nombre de caractères.
Des colonnes rouges apparaissent.
Pour mettre un repère à 40 caractères :
:set colorcolumn=40
On peut abréger la commande avec cc et définir plusieurs colonnes :
:set cc=40,80
Créer un fichier chiffré
On peut, avec vim, créer un fichier qui sera protégé par mot de passe.
On utilisera pour cela :
vim -x fichier.txt
La passphrase sera demandée.
Pour procéder au chiffrement d’un fichier non chiffré, on utilisera :X
Pour ne plus chiffrer le fichier, on utilisera :X et on laissera la passphrase vide.