ViM (Vi amélioré) est un éditeur de texte qui à l'air simpliste mais qui est très puissant à condition de bien l'utiliser. Cette page résume les commandes et les astuces indispensables pour utiliser ViM de manière efficace. Sommaire disponibles : |
ViM est très souple. De nombreux paramètres peuvent être modifiés dans le fichier ~/.vimrc. Il suffit d'y mettre la liste des commandes que l'on veut exécuter au démarrage (une par ligne). Voici un exemple de fichier de configuration avec les explications :
:syntax on #pour la coloration syntaxique de code :set ruler #afficher les coordonnées du curseur :set showmode #afficher le mode en cours :set textwidth=120 #nombre de caractères avant retour à la ligne :set backspace=
Les possibilités sont nombreuses, certaines des commandes données à la suite de cette page fonctionneront.
Le déplacement dans ViM se fait à l'aide des touches de clavier suivantes (le déplacement équivalent est donné en dessous) :
h | j | k | l | 0 | $ | |
← | ↑ | ↓ | → | début de la ligne | fin de la ligne |
Ces touches sont considérées comme des commandes par ViM et peuvent recevoir comme argument la répétition. Ainsi, taper 5k permettra de descendre de 5 lignes. Ensuite, pour se déplacer plus loin, les touches suivantes sont utilisées (en Majuscules !) :
G | H | L | M | ||
der- nière ligne | haut de l' écran | bas de l' écran | pre- mière ligne |
Pour se déplacer de mots en mots, les touches suivantes sont utilisées :
w | b | W | B | |||||||
mot sui- vant | mot précé- dent | mot sui- vant | mot précé- dent |
La variante en majuscules considère comme mot tout bloc séparé par des espaces alors que les commandes standard considèrent qu'un mot est un bloc de caractères alphanumériques.
Lorsqu'on ouvre un nouveau document, on ne peut pas le modifier directement : on est en mode COMMANDE. Pour passer en mode EDITION, deux possibilités : le mode INSERTION et le mode REMPLACEMENT. Voici en bref les touches permettant de basculer d'un mode à l'autre :
i | Passage en mode INSERTION (sous le caractère courant) |
a | Passage en mode INSERTION (après le caractère courant) |
r | Passage en mode REMPLACEMENT |
Inser | Basculer entre INSERTION et REMPLACEMENT |
Echap | Passage en mode COMMANDE |
En mode INSERTION ou REMPLACEMENT, on ne peut évidemment plus taper de commandes. Il faut appuyer sur Echap pour retourner en mode commande. On peut alors utiliser les commandes d'effacement suivantes :
La touche y est à la base de toute opération de copie :
Une fois quelque chose placé dans le presse-papiers, on peut le coller à volonté en faisant :
Si vous passez plusieurs fichiers en arguments au lancement de ViM, ceux-ci seront tous ouverts. Vous pourrez alors basculer de l'un à l'autre à l'aide des commandes suivantes :
Outre le fait que cela permet de passer d'un fichier à l'autre plus facilement, ceci permet surtout de faire des copier/coller entre fichier facilement. En effet, le presse-papiers est commun à tous les fichiers ouverts.
Pour enregistrer un document ou quitter, il faut repasser en mode COMMANDE. Ensuite, il faut entrer l'une des commandes suivantes :
Pour avoir le résultat d'une commande shell sans quitter vim :
Les recherches sont très simples à faire sous ViM. Pour cela, il suffit simplement de passer en mode commande pour faire une recherche. Ensuite, on tape "/" suivi directement de la chaîne à rechercher. Exemple :
/foo #Permet de rechercher l'expression "foo"
Le curseur se placera alors sur la première occurence du mot trouvé. Pour continuer la recherche, les touches suivantes permettent de se déplacer dans un sens ou dans l'autre :
Les recherches peuvent se compliquer en utilisant des expressions régulières. Voici un résumé des expressions régulières les plus utiles :
Expression | Description |
---|---|
. | Tout caractère (même nul) |
^ | Début d'une ligne |
\< | Début d'un mot |
\> | Fin d'un mot |
[aze] | a, z ou e |
[a-z] | tous les caractères entre a et z |
^aze] | tous les caractères sauf a, z et e |
* | 0 ou plusieurs fois le caractère précédent |
/ | caractère d'échappement |
La syntaxe du remplacement est similaire, elle est de la forme :
s/foo/bar #Remplacement de "foo" par "bar" s/foo/bar #Remplacement de "foo" par "bar" avec confirmation
ViM est très adapté à la programmation et dispose de nombreuses options qui permettent d'améliorer la productivité du programmeur et la lisibilité du code.
Les options utiles pour la programmation :
Option | Description |
---|---|
autoindent | Conserver l'indentation lors du passage à la ligne |
cindent | Indentation automatique d'un programme C |
lisp | Indentation automatique d'un programme Lisp |
showmatch | Fait clignoter la parenthèse ouvrante à la fermeture d'une parenthèse |
tabstop | définit le nombre d'espaces d'une tabulation |
syntax [on|off] | active/désactive la coloration syntaxique |