vim
Basic
Quelques données
- Vi Créé par Bill Joy en 1976
- Vim en 1991
vi / vim
1988 | 1.0 | Inspirée par Stevie, son nom signifie alors Vi IMitation. Cette version pour Amiga n’a jamais été publiée |
---|---|---|
1.14 | Première version publiée sur Amiga avec le Fred Fish disk #591 | |
1992 | 1.22 | Portage vers Unix. Vim est maintenant au niveau de Vi. Le nom Vim signifie désormais Vi IMproved |
3.0 | Support des fenêtres multiples | |
4.0 | Interface graphique | |
5.0 | Coloration syntaxique, langage de script simple (fonctions et commandes définies par l’utilisateur, etc.) | |
6.0 | Pliage de code, greffons, gestion des types de fichiers, ajout du partage vertical des fenêtres | |
7.0 | Vérification orthographique, complétion du code, support des onglets |
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
Pour insérer du texte.
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
m[a-zA-Z] => `[a-zA-Z]
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)
a
Ajouter à la fin de la ligne
A
Ajouter une nouvelle ligne en dessous du curseur
o
Ajouter une nouvelle ligne au dessus du curseur
O
EDITION
Remplacement
Remplace le caractère sous le curseur
r
Remplace le mot sous le curseur
cw
EDITION
Suppression
Supprime le caractère sous le curseur
x
Supprime le mot sous le curseur
dw
Supprime la ligne
dd
Supprime du curseur jusqu'à la fin du fichier
dG
Edition
Blocks Visuel
Sélection de caractères
v
Sélection de lignes
V
Sélection de colonnes
<ctrl>+v
Edition multi-lignes
I
RECHERCHE
Recherche simple
/<query>
REGEX
/<regex query>
Occurance suivante
n
Occurance précédente
N
Recherche
Trouver et replacer
Remplace la première occurrence
Remplace la première occurrence
:s/<find>/<replace>
Remplace toutes occurrences sur la ligne
:s/<find>/<replace>/g
Remplace toutes occurrences dans le fichier
:%s/<find>/<replace>/g
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
FIN
Vim
By David Soyez
Vim
- 1,404