Quelques données
- Vi Créé par Bill Joy en 1976
- Vim en 1991
Vim AZERTY
VIM QWERTY
Sommaire
- Aide
- Configuration
-
Modes
-
Commandes
- Déplacements
- Edition
- Recherche
- Buffers
- Tabs
- Windows
Aide
« Une fonctionnalité non documentée est une fonctionnalité inutile »
:h #Ouvre l'aide
:h :w #Ouvre l'aide sur la commande :w
:h / #Ouvre l'aide sur la commande de recherche
:h windows #Ouvre l'aide sur la manipulation des fenêtres
:h g #Ouvre l'aide sur les commandes commençant par g
CONFIGURATION
-
La configuration de vim se fait dans .vimrc
-
Elle permet de configurer vim
-
remaper des touches
-
déclarer et configurer des plugins
-
etc...
:e ~/.vimrc
" Couleurs
set background=dark
colorscheme molokai
" L'appuis successif de j et k à la place d'echap
inoremap jk <esc>
inoremap <esc> <nop>
" Pour se forcer à ne pas utiliser les touches directionnelles
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
:w #enregistre
:source ~/.vimrc #Applique la configuration sans redémarrer
Modes
Normal
Comportement par défaut, utilisé pour la navigation et la manipulation du texte.
Insert
Visual
Pour la navigation et la manipulation de texte sélectionné. La plupart des commandes "Normal" sont accessibles.
CommandEs
Les deux points :
Ouvrir un fichier
:e <fichier> #Ouvre dans la fenêtre active en créant un nouveau buffer.
:tabe <fichier> #Ouvre dans un nouvel onglet en créant un nouveau buffer.
:split <fichier> #Ouvre en partageant l'écran horizontalement.
:vsplit <fichier> #Ouvre en partageant l'écran verticalement.
Ecrire
:w #Enregistre le fichier
:wq #Enregistre et ferme le fichier (ou vim)
ZZ #Enregistre le/les fichier(s) et quitte vim
Quitter
:q #Quitte la fenêtre (ou vim)
:q! #Quitte la fenêtre (ou vim) sans enregistrer
:qa! #Quitte vim sans enregistrer
Déplacement
h => gauche
j => bas
k => haut
l => droite
Déplacement
Dans le fichier
gg Se déplace au début du fichier
G Se déplace à la fin du fichier
<nb_ligne>gg Se déplace au numéro de ligne
C-e Scroll d'une ligne vers le haut
C-y Scroll d'une ligne vers le bas
<ctrl>+f Descendre d'une page (forward)
<ctrl>+b Remonter d'une page (backward)
C-u Scroll d'une motié d'écran vers le haut (up)
C-d Scroll d'une motié d'écran vers le bas (down)
<AltGr>+} Se déplace d'un paragraphe vers le bas
<AltGr>+{ Se déplace d'un paragraphe vers le haut
zz Centre l'écran sur le curseur
DéPLACEMENT
Sur l'écran (pas le fichier)
Haut de l'écran (High)
H
Milieu de l'écran (Middle)
M
Bas de l'écran (Low)
L
DéPLACEMENT
Sur une ligne
w Début d'un mot suivant
W Début d'un mot suivant (séparé par des espaces)
b Début d'un mot précédent
B Début d'un mot précédent (séparé par des espaces)
e Fin d'un mot suivant
E Fin d'un mot suivant (séparé par des espaces)
t<carac> Se déplace vers le caractère suivant <carac>
f<carac> Se déplace vers le caractère précédent <carac>
; Répète la dernière commande t
$ Fin d'une ligne
0 Début d'une ligne
^^ Début du texte de la ligne
Déplacement
Mark & jump
Annuler un jump
Mark et Jump
Divers
jump entre les caractères fermants et ouvrants
EDITION
AJouter
Insérer (avant le curseur)
i
Insérer au début de la ligne
I
Ajouter (après le curseur)
Ajouter à la fin de la ligne
Ajouter une nouvelle ligne en dessous du curseur
Ajouter une nouvelle ligne au dessus du curseur
EDITION
Remplacement
Remplace le caractère sous le curseur
r
Remplace le mot sous le curseur
EDITION
Suppression
Supprime le caractère sous le curseur
Supprime le mot sous le curseur
Supprime la ligne
Supprime du curseur jusqu'à la fin du fichier
Edition
Blocks Visuel
Sélection de caractères
v
Sélection de lignes
Sélection de colonnes
Edition multi-lignes
RECHERCHE
Recherche simple
REGEX
Occurance suivante
Occurance précédente
Recherche
Trouver et replacer
Remplace la première occurrence
Remplace toutes occurrences sur la ligne
Remplace toutes occurrences dans le fichier
BUFFERS
- Un buffer est un fichier chargé en mémoire. Tous les fichiers ouverts sont associés à un buffer.
- Un buffer n'est pas forcément associé à un fichier.
- Un buffer est identifié par un numéro.
-
Un même buffer peut être associé à plusieurs fenêtres différentes.
:buffers ou :ls ou :files Liste les buffers
:buffer 1 ou :b 1 Retourne sur un buffer existant
:bfirst :bnext :blast Retourne sur un buffer existant
:bdelete ou :bd Supprime le buffer ouvert
:bd 3 Supprime le buffer numéroté 3
:bd file.txt Supprime le buffer file.txt
Exemple buffer partagé:
:vert sb N #Ouvre un buffer dans une nouvelle fenêtre vertical
Tabs
- Pratique pour éditer plusieurs fichiers
- Un onglet est associé à un buffer
-
Donc un même fichier peut être ouvert dans plusieurs onglet
:tabedit ou :tabe Ouvre un fichier dans un nouvel onglet
:tabclose ou :tabc ou :q Ferme l'onglet
:tabc {n} Ferme le {n}ième onglet
:tabn ou : tabnext Onglet suivant
:tabp ou :tabprevious Onglet précédent
Windows
Partager la fenêtre
Verticalement :vs ou :split
:vs <file> ou :vsplit <file> #Ouvre un buffer dans une nouvelle vertical
Horizontalement :sp ou :split
:sp <file> ou :split <file> #Ouvre un buffer dans une nouvelle horizontal
Ajuster la taille
:<vertical> resize <columns>
Bouger le curseur de fenêtre
<ctrl>+w <direction>
ou CTRL-W (x2)
(en laissant CTRL appuyé ou pas)
Windows
:only #Garde seulement cette fenêtre ouverte
CTRLW C ou :q #Ferme la fenêtre
CTRLW - #Diminue la taille de la fenêtre
CTRLW + #Augmente la taille de la fenêtre