éditeur vi
Tutoriel= commande vimtutor
Déplacement
- flèches
- Flèches ou HJKL (J ressemble à une flèche vers le bas)
- Ctrl-G
- Affiche position
- w ou e
- mot par mot (début ou fin)
- 0 ou ^
- début ligne
- $
- fin ligne
- G et gg
- (go) début et fin du fichier (si précédé nombre=aller à ligne)
- :12
- Aller ligne 12
- souris
- voir paramétrage
Sauver et quitter
- :q!
- force à quitter sans sauver
- :wq
- Sauve et quitte
- :w lisezmoi.txt
- Sauve le fichier sous le nom défini
- :e lisezmoi.txt
- Ouvre fichier.
- v [déplacement] :w extrait.txt
- Sauve les lignes sélectionnées
- 1,10:w chapitre1.txt
- Sauve les dix premières lignes sous le nom défini
- r fichier.txt
- Insère fichier.txt au niveau du curseur
- r !ls
- Insère résultat d'une commande au niveau du curseur
Edition
En mode "Normal"
- i
- Passe en mode "insertion" (faire insertion puis "esc" pour revenir au mode "normal")
- a
- idem i (après curseur)
- R
- idem i (mode OVERWRITE)
- r
- remplace un seul caractère puis repasse en mode normal
- o
- Passe en mode "insertion" sur nouvelle ligne (open)
Effacements
- x
- Efface un caractère
- dw
- Efface un mot (yc espace)
- de
- Efface un mot (sans l'espace qui suit)
- dd
- Efface une ligne
- d0
- Efface du début de la ligne jusqu'au curseur
- d$
- Efface du curseur à la fin de la ligne
- J
- Joint la ligne suivante (supprime le CRLF)
On peut faire précéder d'un nombre qui dit combien ont doit effacer.
10dw : efface dix mots
Si on utilise "c" (change) au lieu de "d" (delete) on passe en mode insertion dans la foulée.
Annuler
- u
- Undo, annule modification
- Ctrl-r
- Redo refait chose annulée
- U
- annule modifs faites sur toute la ligne (Toggle)
Copier coller
Quand on "efface" avec "d" en fait on fait un "couper".
- v
- Permet de sélectionner du texte (utile aussi pour enregistrer extrait)
- ctrl-v
- column select
- y
- copie texte surligné
- Y ou yy
- copie ligne courante
- 10Y
- copie ligne courante + 9 suivantes
- p
- Paste. Colle (attention: après ligne courante).
- P
- Paste. Colle (fonctionnement usuel: avant ligne courante).
- "+lettre+commande
- utilise un registre (presse-papier multiple)
- "+ maj-lettre +d ou y
- ajoute au registre ce qu'on coupe ou copie (presse-papier multiple)
- "+
- le signe "+" identifie le presse-papier standard de l'OS
- "+Y
- Copier ligne courante (dans le presse-papier standard de l'OS)
- "+P
- Coller (le presse-papier standard de l'OS)
- :reg
- permet de voir contenu registres
Recherche
- #
- cherche mot courant
- *
- cherche mot courant vers arrière
- %
- ),] ou } correspondant
- /texte
- recherche de texte vers le bas
- ?texte
- recherche de texte vers le haut
- n
- Occurence suivante (next)
- N
- Occurence précédente
- :%s/ancien/nouveau/gc
- remplacer 'ancien' par 'nouveau' dans tout le texte ("%": tout le fichier; "g":toutes occurences; "c": confirmer avec y ou n)
- :%s/ancien/nouveau/g
- remplacer 'ancien' par 'nouveau' dans tout le texte
- :s/ancien/nouveau
- remplacer la première occurence de 'ancien' par 'nouveau' sur la ligne courante
- :s/ancien/nouveau/g
- remplacer 'ancien' par 'nouveau' sur la ligne courante
- :1,10s/ancien/nouveau/g
- remplacer 'ancien' par 'nouveau' sur les lignes 1 à 10
Multi fichier
- :sp fichier2.txt
- Ouvre nouveau fichier dans sous cadre.
- :vsp fichier2.txt
- idem mais avec split vertical
- ctrl-w ctrl-w (window)
- On bascule d'un cadre à l'autre
- ctrl-w + flèche
- Basculement fin quand plusieurs cadres
- ctrl-w + +/-/=
- Permet de régler taille du cadre
- :qa, :qa! ou :wqa
- quitter tout
Astuces
- ~
- Change la casse de la sélection
- m+lettre
- pose un flag
- `a
- va au flag identifié par "a"
- 'a
- va à la ligne du flag identifié par "a"
- :marks
- liste les flags
- `.
- flag par défaut: dernière modif
- ''
- flag par défaut: dernière position avant saut
- .
- Répête la dernière commande
- >>
- augmente l'indentation de la ligne courante.
- commenter un bloc
- sélectionner colonne, maj-i, //
Options
- :set all
- Liste valeurs options
- :set
- Liste valeurs options modifiées
- :set mouse=a
- autorise la souris pour se déplacer (maintenir "majuscule" pour utiliser le copier-coller du xterm)
- :set mouse&
- annule la reconnaissance souris
- :set ic
- recherche ignore casse
- :set hls is
- surlignage de tous les résultats
- :set nohls
- fin surlignage
- :set nobomb
- pas de BOM dans fichiers UTF-8
- :syntax enable
- Coloration syntaxique
Encodage
Pour recharger un fichier en utf-8 (dans lequel on voit des é):
:e! ++enc=utf8
Pour convertir en utf-8 un fichier sur lequel on travaille :
:set fileencoding=utf8
:set bomb
La seconde commande ajoute le BOM
On peut ajouter ça dans le .vimrc pour que ce soit le réglage par défaut.
Aide
- vimtutor fr
- Tutorial
- F1 ou :help
- aide en ligne
- :q
- quitter l'aide en ligne
A essayer:
:help w
:help c_<T
:help insert-index
:help user-manual
Paramétrage
Support pavé numérique:
sous putty, dans la section [Terminal -> Features], il faut cocher la case Disable application keypad mode;
Créer un fichier de config:
:edit ~/.vimrc pour Unix
:edit $VIM/_vimrc pour MS-Windows
Charger un fichier modèle
:r $VIMRUNTIME/vimrc_example.vim
(support souris, coloration syntaxique, surlignage recherches,..)
Astuces
- :!ls
- Permet exécution d'une commande de l'OS