Mode d'insertion
Mouvement
hjkl
Malgré ce que Pavel Shved a dit - qu'il est probablement plus conseillé de s'habituer au Escmode Insertion - voici un exemple d'ensemble de mappages pour une navigation rapide en mode Insertion:
" provide hjkl movements in Insert mode via the <Alt> modifier key
inoremap <A-h> <C-o>h
inoremap <A-j> <C-o>j
inoremap <A-k> <C-o>k
inoremap <A-l> <C-o>l
Cela fera Alt+ hen mode Insertion aller d'un caractère à gauche, Alt+ jbas et ainsi de suite, de manière analogue à hjklen mode Normal.
Vous devez copier ce code dans votre fichier vimrc pour le charger à chaque démarrage de vim (vous pouvez l'ouvrir en tapant start :new $myvimrc
en mode Normal).
Tout mouvement en mode normal
Étant donné que la Alttouche de modification n'est pas mappée (à quelque chose d'important) par défaut, vous pouvez de la même manière extraire d'autres (ou toutes) les fonctionnalités du mode Normal au mode Insertion. Par exemple:
Passer au début du mot actuel avec Alt+ b:
inoremap <A-b> <C-o>b
inoremap <A-w> <C-o>w
(Autres utilisations de Alten mode Insertion)
Il convient de mentionner qu'il peut y avoir de meilleures utilisations de la Altclé que de répliquer le comportement du mode normal: par exemple, voici des mappages pour copier à partir d'une ligne adjacente la partie de la colonne actuelle jusqu'à la fin de la ligne:
" Insert the rest of the line below the cursor.
" Mnemonic: Elevate characters from below line
inoremap <A-e>
\<Esc>
\jl
\y$
\hk
\p
\a
" Insert the rest of the line above the cursor.
" Mnemonic: Y depicts a funnel, through which the above line's characters pour onto the current line.
inoremap <A-y>
\<Esc>
\kl
\y$
\hj
\p
\a
(J'ai utilisé la \
continuation de ligne et l'indentation pour augmenter la clarté - les commandes sont interprétées comme si elles étaient écrites sur une seule ligne.)
Raccourcis clavier intégrés pour l'édition
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor (influenced by the 'backspace' option)
(Il n'y a pas de raccourcis clavier notables intégrés pour le mouvement en mode Insertion.)
Référence: :help insert-index
Mode ligne de commande
Cet ensemble de mappages rend les mouvements supérieurs Alt+ disponibles dans la ligne de commande:hjkl
" provide hjkl movements in Command-line mode via the <Alt> modifier key
cnoremap <A-h> <Left>
cnoremap <A-j> <Down>
cnoremap <A-k> <Up>
cnoremap <A-l> <Right>
Alternativement, ces mappages ajoutent les mouvements à la fois au mode Insertion et au mode Ligne de commande en une seule fois:
" provide hjkl movements in Insert mode and Command-line mode via the <Alt> modifier key
noremap! <A-h> <Left>
noremap! <A-j> <Down>
noremap! <A-k> <Up>
noremap! <A-l> <Right>
Les commandes de mappage pour tirer les commandes du mode Normal vers le mode Ligne de commande sont un peu différentes des commandes de mappage du mode Insertion (car le mode Ligne de commande manque le Ctrl+ du mode Insertion O):
" Normal mode command(s) go… --v <-- here
cnoremap <expr> <A-h> &cedit. 'h' .'<C-c>'
cnoremap <expr> <A-j> &cedit. 'j' .'<C-c>'
cnoremap <expr> <A-k> &cedit. 'k' .'<C-c>'
cnoremap <expr> <A-l> &cedit. 'l' .'<C-c>'
cnoremap <expr> <A-b> &cedit. 'b' .'<C-c>'
cnoremap <expr> <A-w> &cedit. 'w' .'<C-c>'
Raccourcis clavier intégrés pour le mouvement et l'édition
CTRL-B cursor to beginning of command-line
CTRL-E cursor to end of command-line
CTRL-F opens the command-line window (unless a different key is specified in 'cedit')
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor
CTRL-P recall previous command-line from history (that matches pattern in front of the cursor)
CTRL-N recall next command-line from history (that matches pattern in front of the cursor)
<Up> recall previous command-line from history (that matches pattern in front of the cursor)
<Down> recall next command-line from history (that matches pattern in front of the cursor)
<S-Up> recall previous command-line from history
<S-Down> recall next command-line from history
<PageUp> recall previous command-line from history
<PageDown> recall next command-line from history
<S-Left> cursor one word left
<C-Left> cursor one word left
<S-Right> cursor one word right
<C-Right> cursor one word right
<LeftMouse> cursor at mouse click
Référence: :help ex-edit-index
imap jk <Esc>
) Afin de ne pas avoir à interrompre votre élan et à atteindre votre clavier pour appuyer sur la touche.