Raccourcis Vim
Raccourcis Vim les plus courants
- Aide de Vim : :help
Modes
- Interactif : esc
- Insertion : i
- Commande : : depuis le mode interactif
- Remplacement : R
Les commandes précédées de : se font en mode commande, c'est à dire en écrivant : suivis de la commande depuis le mode interactif
Déplacements
- Début de ligne : 0
- Fin de ligne : $ (ou fin)
- De mots en mot : w
- Sauter vers une ligne : 7G pour aller à la ligne 7
Sauvegarde
- Sauvegarder : :w
- Quitter : :q
- Forcer : :!
- Sauvegarder et quitter en forcant : :wq!
Édition
Les opérations d'effacement, d'insertion ou de collage peuvent être précédées d'un chiffre pour les faire plusieurs fois : 3x supprimera 3 caractères
Effacement
- Effacer des lettres : x (un carctère)
- effacer un mot : dw
- effacer/couper une ligne (la ligne est mise en mémoire) : dd
- Supprimer le début de la ligne : d0
- Supprimer la fin de la ligne : d$
- Effacer du curseur jusqu'à la ligne 75 : d75G
Copier, annuler, insérer
- copier la ligne en mémoire : yy
- Coller (la ligne se colle après le curseur) : p
- remplacer une lettre : r[nouvelle lettre]
- Annuler la dernière opération : u
- Annuler une annulation : Ctrl + R
- Insérer une ligne avant la ligne du curseur : O
- Insérer une ligne après celle du curseur : o
Indenter un bloc
Esc. #Mode normal v #Passer en visuel j #Une fois par ligne > #Pour indenter < #Pour désindenter
Fonctions avancées
- Chercher un mot depuis le curseur: / (n pour avancer dans les occurences, N pour reculer)
- Chercher un mot depuis le début du fichier : ?
- Fusionner des fichiers (à partir du curseur): :r /chemin/du/fichier
- Lancer une commande externe : :!
Remplacement de texte
"ancien" est le texte qui est là et que nous voulons remplacer, par "nouveau" qui est le nouveau texte
- Remplacer la première occurence de la ligne : :s/ancien/nouveau
- Remplacer toutes les occurences de la ligne : :s/ancien/nouveau/g
- Remplacer toutes les occurences dans les lignes numéro # à # : :#,#s/ancien/nouveau/g
- Remplacer les occurences dans toout le fichier : :%s/ancien/nouveau/g
Split d'écran
Par défaut, le split ouvre le fichier une seconde fois pour être à deux endroits de celui-ci. Sinon il faut faire :sp autrefichier
- Découper l'écran horizontalement : :sp
- Découper l'écran verticalement : :vsp
- Raccourcis en écran splitté:
- ctrl + w : naviguer de viewport en viewport
- ctrl+w puis h, j, k, ou l (ou flèches): se déplacer vers un viewport spécifique
- ctrl +w puis + ou - : agrandir ou rétrecir le viewport actuel (nombre de lignes)
- ctrl + w puis = : égalise les viewports actuels
- ctrl + w puis r ou R : Inverser la position des viewports
Options
Les options modifiées après le lancement de Vim seront oubliées dès que l'on refermera celui-ci.
- Ouvrir une option : :set [option]
- Désactiver une option : :set no[option]
- Donne un valeur : :set [option] = [valeur]
- Connaître l'état d'une option : :set [option]?
- Aide sur une option : :help [option]
Les options peuvent être modifiées "définitivement" dans le fichier ~/.vimrc; on en trouve un exemplaire dans /etc/vim
Quelques options:
- coloration syntaxique : syntax on/off
- Couleur adaptée à un fond sombre : set background=dark
- Afficher les numéros de ligne : set number
- Afficher toutes les commandes tapées (comme dd) : set showcmd
- Ignorer la casse lors des recherches : set ignorecase
- Activer le support de la souris : set mouse=a
Cherche et remplace
- Most of the time, that's not sufficient, so you can add a range like so:
-
- 8,10 s/search/replace/g
-
- If you want to search an entire file, you can use % to indicate that as the range:
-
- %s/search/replace/g
-
- downcase les deux premiers caracteres :
%s/^../\L&\E/
Macros
https://medium.com/@arhuman/just-enough-macros-9505acf01f83
In normal mode press ‘q’ then a letter between ‘a’ and ‘z’ which will be the macro name (or more precisely the register in which the macro will be stored).
From now on, every key pressed will be recorded in the macro. While recording the macro, you can change mode (normal, insert, visual…) as you like. When you’re done press ‘q’ again in normal mode to end the recording.
Executing a macro is as simple as typing ‘@’ followed by the macro name.
Regexs utiles
Notions Regex propres à VIM
Vim utilise pas mal de symboles et quantificateurs bien à lui.
- \{-}: Non-Greedy. Remplace un * en essayant de matcher le moins de caractères possibles.
- \zs : Pour les substitutions. On ne remplace que ce qui est situé après le \zs
Supprimer les trailing whitespaces
%s/\s\+$//e
Remplacer la première occurence d'un truc par ligne (ici le ; par ,)
%s/^.\{-}\zs;/,/g
Remplacer toutes les successions d'espaces par un seul
%s/ \{2,}/ /g