iusevimbtw.fr

Arrêtez de débrancher la prise pour quitter.

Modes, Édition & Presse-papiers

i / a Insert (avant curseur) / Append (après curseur)
I / A Insert début de ligne / Append fin de ligne
o / O Ouvrir ligne en dessous / au dessus
v / V / <C-v> Visuel : Caractère / Ligne / Bloc rectangulaire
yy / y Copier (Yank) la ligne / la sélection
p / P Coller après / avant le curseur
dd / d Couper (Delete) la ligne / la sélection
c / C Changer (couper + insert) / Changer jusqu'à la fin de ligne
r / R Remplacer 1 caractère / Mode Remplacement
u / <C-r> Undo / Redo
. Répéter la dernière action (Le Saint Graal)

Fichiers, Buffers & Tabs

:w / :x / :q! Sauvegarder / Sauver & Quitter / Forcer Quitter
:e {file} Éditer un fichier (tab pour autocomplétion)
:bn / :bp Buffer suivant / précédent
:bd Fermer (Delete) le buffer courant
:tabnew / :tabc Nouvel onglet / Fermer onglet
gt / gT Onglet suivant / précédent
gf Ouvrir le fichier sous le curseur (Go File)
<C-^> Basculer entre les deux derniers buffers

Manipulation Avancée

Actions Supplémentaires

JJoindre la ligne suivante (supprime le saut de ligne)
~Inverser la casse (Maj <-> Min) du caractère
gU / guMettre en Majuscules / minuscules
>Indenter (v_mode ou >ip)
<Désindenter
=Auto-indenter le code sélectionné
<C-a> / <C-x>Incrémenter / Décrémenter le nombre sous le curseur
gqFormater le texte (couper les lignes longues)

Objets de Texte

iw / awMot (inner / around - avec espaces)
ip / apParagraphe
i" / i' / i`Contenu entre guillemets/quotes
i( / i[ / i{Contenu entre parenthèses/crochets/accolades
it / atTag HTML/XML (contenu / tag complet)

Mode Bloc (<C-v>) & Tricks

<C-v> + I + texte + EscMulti-curseur : Insérer sur toutes les lignes
<C-v> + c + texte + EscChanger une colonne de texte
<C-v> + $ + AAjouter à la fin de toutes les lignes (inégales)
g;Aller à la dernière modification
giAller à la dernière insertion et passer en INSERT

Registres, Marques & Correction

Presse-papiers (Registres)

"{a-z}yCopier dans le registre a, b... z
"{a-z}pColler depuis le registre a... z
"+y / "+pCopier/Coller presse-papier système (Ctrl-C/V OS)
"0pColler le dernier yank (pas la dernière suppression)
:regVoir le contenu de tous les registres

Marques & Sauts

m{a-z}Marquer la position locale
m{A-Z}Marquer la position globale (entre fichiers)
'{a-z}Aller à la ligne de la marque
`{a-z}Aller à la position exacte (colonne)
<C-o> / <C-i>Saut précédent / suivant (Jump list)

Complétion & Spell

<C-n> / <C-p>Complétion mot générique (dans fichier ouvert)
<C-x><C-f>Complétion de chemin de fichier
<C-x><C-l>Complétion de ligne entière
]s / [sFaute d'orthographe suivante / précédente
z=Suggérer correction orthographique

Power User : Regex & Commandes Globales

Substitutions & Commande Global (:g)

:%s/foo/bar/gcRemplacer avec confirmation (c) partout
:%s/\v(a|b)/X/gRegex moderne : remplace a ou b par X
:g/pattern/dSupprimer toutes les lignes contenant "pattern"
:v/pattern/dSupprimer toutes les lignes NE contenant PAS "pattern"
:g/^\s*$/dSupprimer toutes les lignes vides
:g/foo/norm A!Ajouter "!" à la fin de toutes les lignes avec "foo"
:sortTrier les lignes sélectionnées

Regex Vim Exhaustive

Utilisez \v (very magic) pour éviter d'échapper ( ) + { } etc.

^ / $Début de ligne / Fin de ligne
.N'importe quel caractère (sauf saut de ligne)
\< / \>Début / Fin de mot (ex: \<the\>)
\d / \DChiffre [0-9] / Non-chiffre
\s / \SEspace blanc (tab, espace) / Non-espace
\w / \WCaractère mot [a-zA-Z0-9_] / Non-mot
*0 ou plus (greedy)
\+1 ou plus (avec \v ou \+)
\=0 ou 1 (optionnel)
\{n,m}Entre n et m fois
\|OU logique (ex: foo\|bar)
\rNouvelle ligne (dans le remplacement)

Macros & Fenêtres

qa ... qEnregistrer macro dans "a"
@aJouer macro "a"
@@Rejouer la dernière macro
5@aJouer 5 fois la macro "a"
:sp / :vspSplit Horizontal / Vertical
<C-w>h/j/k/lNaviguer entre les fenêtres
<C-w>=Égaliser la taille des fenêtres
<C-w>oFermer toutes les fenêtres sauf la courante (Only)