k h l j
w / W : début du mot suivant / "Bigword"
e / E : fin du mot courant / "Bigword"
b / B : début du mot courant / "Bigword"
$ : fin de ligne
0 : début de ligne
( : début de la phrase précédente (ponctuation : ;,.?/! )
) : début de la phrase suivante
{ : début du § précédent
} : début du § suivant
gg : va à la première ligne
G : va à la dernière ligne
% : va au caractère associé : ( ) { } [ ]
* : va au mot identique suivant
# : va au mot identique précédent
^ : amène au premier caractère de la ligne
<Ctrl-o> / <Ctrl-i> : Saute vers la position la plus ancienne / récente du curseur
H : Placer le curseur en haut de la fenêtre
M : Placer le curseur au milieu de la fenêtre
L : Placer le curseur en bas de la fenêtre
]M : Aller à la fin de la méthode
]m : Aller à la fin de la prochaine méthode
[M : Aller au début de la méthode précédente
[m : Aller au début de la méthode
[[ / ]] : Aller à la méthode précédente / suivante
zt, zb, zz : Scroller pour que le curseur soit t en haut, b en bas, z au milieu de l'écran
"Bigword" : avec des symboles comme
-ou_, au milieu d'un mot
a : insertion APRES le curseur
A : insertion en fin de ligne
i : insertion SUR le curseur
I : insertion en début de ligne
o : insertion d'une ligne au DESSOUS de la ligne courante
O : insertion d'une ligne en DESSUS de la ligne courante
cw : remplacer jusqu'au mot suivant /* Valable avec toutes les combinaisons de déplacements */
ciw : remplacer le mot courant
c%: remplacer jusqu'à la fin de l'appel de fonction (curseur sur t: XX && test(param1, param) && YY -> XX && && YY)
C : remplacer jusqu'a la fin de la ligne
cc : insertion du texte en remplacement de la ligne courante
<Ctrl-d> / <Ctrl-t> : Décale d'une tabulation vers la gauche / droite
<Ctrl-p> : auto complétion du mot précédent (si le mot est déjà présent dans la page)
<Ctrl-n> : auto complétion du mot suivant
gi : insérer sur la ligne où la dernière insertion a été stoppée
x : suppression du caractère
dd : suppression de la ligne
d[mov] : supprime en fonction du mouvement
df[char] : supprime tout jusqu'au [char] sur la ligne
J : concaténation de la ligne suivante à la fin de la ligne courante + espace entre les lignes
yy : copie de la ligne
y[mov] : copie en fonction du mouvement
p : colle APRES le curseur
P : colle AVANT le curseur
diw : effacer le mot sur le curseur
. : répéter la dernière opération d'édition
r : remplacer le caractère courant
u : annuler l'opération
<Ctrl-r> : rétablit la dernière opéraion annulée
~ : change la casse du caractère sous le curseur
[après sélection du texte] < : indenter d'un cran vers la gauche
[après sélection du texte] > : indenter d'un cran vers la droite
[après sélection du texte] = : auto indenter
^ <Ctrl-v> [sélection du bloc] I // <ESC><ESC> : commente le bloc avec //
ga : écrit la valeur en ASCII du caractère sous le curseur
>> / << : augmente décrémente la tabulation pour la ligne
gf : ouvre le fichier sous le curseur
<Ctrl-w> f : ouvre le fichier sous le curseur en séparant horizontalement la zone
<Ctrl-w> gf : ouvre le fichier sous le curseur dans un nouvel onglet
:E : ouvre un navigateur de fichiers, <Enter> pour éditer un fichier.
Xgn / XgN : une fois un motif sélectionné, exécute la commande X puis passe à la prochaine/précédente sélection, utile pour modifier (X = c) ou supprimer (X = d) une partie d'un mot
:e #pour revenir au fichier précédent.
f[char] : recherche la première occurence de [char] sur la ligne
/[txt] : rechercher le txt
n : occurence suivante de la recherche
N : occurence précédente de la recherche
:%s/[regexp]/[remplacement]/ : remplacer la première "regexp" de la page par "remplacement"
Enlever le
%effectuera le changement sur la ligne seulement
Pour définir une "zone" remplacer%par[ligne début],[ligne fin]Ajoutergcollé au dernier/remplacera TOUTES les occurences
Ajoutercà la fin de la commande (commeg) demandera l'autorisation avant de remplacer
## Trucs additionnels :
Définir une macro personnalisée :
q<lettre><commande>q : 'lettre' est la lettre attribuée à la macro, 'commande' commande à exécuter (input...).
Exécuter une macro :
@<lettre> : en mode édition
<Ctrl-r><lettre> : en mode insertion
Afficher les macros :
:reg
Insérer/éditer les macros dans le buffer :
On colle la définition de la macro : "<lettre>p
[...Edition de la macro...]
En début de ligne, sélection et copie : "<lettre>y$
Mémorise la position du curseur :
m<lettre> : 'lettre' est la lettre attribuée à cette marque
Aller à la marque :
- ` : Va à la position marquée
'<lettre>: Va sur la ligne marquée'.: Va à la dernière modification
Créer une nouvelle abréviation :
Fonctionne en mode commande et insertion.
Pour insertion uniquement, remplacerabparia.
Pour commande-line uniquement, remplacerabparca.
:ab <abréviation> <correspondance>
:ab sop System.out.println( "" ) ; : Ecrire sop<espace> et sop devient : System.out.println( "" ) ;
Ouvrir vim avec un fichier par onglet : vim -p <file1> <fileB>.
Ouvrir un fichier dans un nouvel onglet : :tabedit <file>.
Maximiser une fenêtre (split) dans un nouvel onglet : <Ctrl-w> T.
Fermer un onglet : :q (si il n'y a pas de fenêtres ouvertes dans l'onglet).
Fermer un onglet (et toutes ses fenêtres) : :tabclose ou :tabc.
Fermer tous les onglets sauf l'onglet courant : :tabonly ou :tabo.
Aller à l'onglet suivant : gt ou Ctrl + PgDown.
Aller à l'onglet précédent : gT ou Ctrl + PgUp.
Déplacer les onglets : :tabmove <number> number est le numéro du tab voulu. Les indices commencent à 0.
Split horizontal : <Ctrl-w> s ou :sp [file].
Split vertical : <Ctrl-w> v ou :vsp [file].
Fermer la fenêtre courante : :q.
Fermer tout sauf la fenêtre courante : :only ou :on.
Changer de fenêtre pour la suivante : <Ctrl-w> w.
On peut remplacer le dernier
wpar une flèche directionelle.
Augmenter la taille d'une fenêtre de n caractères verticalement : <Ctrl-w> [n]+.
Augmenter la taille d'une fenêtre de n caractères horizontalement : [n] <Ctrl-w> >.
Maximiser la taille de la fenêtre courante verticalement : <Ctrl-w> _.
Maximiser la taille de la fenêtre courante horizontalement : <Ctrl-w> |.
Egaliser les fenêtres : <Ctrl-w> =.
Fixer la taille de la fenêtre verticalement ('n' lignes) : [n] <Ctrl-w> _.
�
Déplacer la fenêtre courante en haut / bas / gauche / droite de l'écran : <Ctrl-w> K / <Ctrl-w> J / <Ctrl-w> H / <Ctrl-w> L.
Fermer toutes les fenêtres avec des modifications non enregistrées : :qall.
Enregistrer toutes les fenêtres : :wall.
Enregistrer puis fermer toutes les fenêtres : :xall.
Pour utiliser les buffers il faut q'une instance de vim soit en cours. Toutes les commandes ci-dessous se passent dans l'instance de vim. Pour ouvrir plusieurs fichiers en buffer mode : vim [file1] [file2].
Ajouter un buffer : :e [file].
Afficher la liste des buffers : :ls.
Le buffer courant est repéré par
%a.
Les modification (ajout/suppression) sont repérés par :-et+.
Aller au buffer suivant / précédent : :bn / :bp.
Aller au buffer n : :b[n].
Sauvegarder un buffer : :w.
Retirer le buffer courant de la liste des buffers : :bd.
Lister les erreurs / lister toutes les erreurs : :cl / :cl!
Ouvrir une liste détaillée des erreurs en splittant la vue : :cope / :copen
Il est possible de passer en argument la taille en lignes de la fenêtre :
:cope 14
Fermer la fenêtre des erreurs détaillées : :ccl.
:set spelllang=en ou :set spelllang=fr pour choisir la langue (variantes en_gb et en_us).
:set spell! active/désactive spell.
]s / [s : aller au terme mal orthographié suivant / précédent.
z= : ouvrir la liste des corrections disponibles (1z= pour remplacer le terme mal orthographié par le premier de la liste).
https://github.com/xolox/vim-easytags
<Ctrl-]> : aller à la définition
<Ctrl-W> <Ctrl-]> : aller à la définition dans une nouvelle fenêtre
<Ctrl-t> : revenir à la position initiale
ajouter map <C-\> :tab split<CR>:exec("tag ".expand("<cword>"))<CR> dans ~/.vimrc et <Ctrl-\> ouvre la définition dans un nouvel onglet.
:set nu : affiche les numéros de ligne
:set autoindent : active l'indentation automatique
:set noautoindent : désactive l'indentation automatique
:set tabstop=[x] : régler la taille des tabulations
:UltiSnipsEdit! : edite les snippets pour le type de fichier courant (retirer ! pour éditer les scripts locaux)
<trigger word> <tab> : charge le snippet
<Ctrl-j> / <Ctrl-k> : va au prochain / précédent tabstop
Pour utiliser le traditionnel <tab> / <Shift-tab> pour naviguer les tabstops:
:let g:UltiSnipsExpandTrigger="<tab>"
:let g:UltiSnipsJumpForwardTrigger="<tab>"
:let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
Calcule des expressions et insère le résultat (utiliser en mode insertion), fonctionne également en hexadécimal.
i<Ctrl-r>=12 * 2 : (mode insertion) insère le résultat de 12 * 2