Mode insertion
Mouvement
hjkl
En dépit de ce que Pavel Shved a déclaré - qu'il est probablement plus judicieux de s'habituer à Esc aping mode Insert - voici un exemple d'ensemble de mappings pour une navigation rapide dans le mode Insert :
" 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 rendra Alt + h en mode Insertion aller un caractère à gauche, Alt + j et ainsi de suite, de manière analogue à hjkl en mode normal.
Vous devez copier ce code dans votre fichier vimrc pour qu'il soit chargé à chaque fois que vous lancez vim (vous pouvez l'ouvrir en tapant :new $myvimrc
à partir du mode Normal).
Tout mouvement en mode normal
Depuis le Alt n'est pas affectée (à quelque chose d'important) par défaut, vous pouvez, de la même manière, faire passer d'autres (ou toutes les) fonctionnalités du mode normal au mode insertion. Par exemple :
Déplacement au début du mot en cours avec Alt + b :
inoremap <A-b> <C-o>b
inoremap <A-w> <C-o>w
(Autres utilisations de Alt en mode insertion)
Il est utile de mentionner qu'il peut y avoir de meilleures utilisations pour les Alt Voici des mappings 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é \
continuation de la ligne et l'indentation pour plus de clarté. Les commandes sont interprétées comme si elles étaient écrites sur une seule ligne).
Touches de raccourci intégrées 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 touches de raccourci intégrées notables pour les déplacements en mode insertion).
Référence : :help insert-index
Mode ligne de commande
Cet ensemble de correspondances fait que la partie supérieure Alt + hjkl mouvements disponible dans la ligne de commande :
" 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 mappings ajoutent les mouvements à la fois en mode insertion et en 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 (parce que le mode Ligne de commande n'a pas les caractéristiques du mode Insertion). Ctrl + 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>'
Touches de raccourci intégrées pour le déplacement 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
1 votes
Une astuce : il est également utile de faire correspondre escape à une combinaison de touches plus proche (c'est-à-dire
imap jk <Esc>
) afin que vous n'ayez pas à interrompre votre élan et à traverser votre clavier pour appuyer sur la touche.7 votes
J'aime ça (
<ESC>
) mis en correspondance aveckj
au lieu dejk
; mon ami Dijkstra est à blâmer !11 votes
Tengo
jk
ykj
J'ai donc appuyé sur le bouton comme un gros bouton avec deux doigts et peu importe l'ordre, je suis de retour à la normale.