Modo de inserción
Movimiento
hjkl
A pesar de lo que dijo Pavel Shved , que probablemente sea más aconsejable acostumbrarse al Escmodo Insertar, aquí hay un conjunto de ejemplos de asignaciones para una navegación rápida dentro del modo Insertar:
" 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
Esto hará que Alt+ hen el modo Insertar quede un carácter a la izquierda, Alt+ jhacia abajo y así sucesivamente, de manera análoga al hjklmodo Normal.
Debe copiar ese código en su archivo vimrc para que se cargue cada vez que inicie vim (puede abrirlo escribiendo :new $myvimrc
comenzando en modo Normal).
Cualquier movimiento en modo normal
Como la Alttecla modificadora no está asignada (a algo importante) de forma predeterminada, puede extraer de la misma manera otra (o toda) funcionalidad del modo Normal al modo Insertar. Por ejemplo:
pasar al comienzo de la palabra actual con Alt+ b:
inoremap <A-b> <C-o>b
inoremap <A-w> <C-o>w
(Otros usos de Alten modo Insertar)
Vale la pena mencionar que puede haber mejores usos para la Altclave que replicar el comportamiento en modo Normal: por ejemplo, aquí hay asignaciones para copiar desde una línea adyacente la parte de la columna actual hasta el final de la línea:
" 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
(Utilicé la \
continuación de línea y la sangría para aumentar la claridad: los comandos se interpretan como si estuvieran escritos en una sola línea).
Teclas de acceso rápido incorporadas para editar
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)
(No hay teclas de acceso rápido incorporadas notables para el movimiento en modo Insertar).
Referencia: :help insert-index
Modo de línea de comandos
Este conjunto de asignaciones hace que los movimientosAlt + superiores estén disponibles en la línea de comandos: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>
Alternativamente, estas asignaciones agregan los movimientos tanto al modo Insertar como al modo de línea de comandos de una vez:
" 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>
Los comandos de mapeo para pasar los comandos del modo Normal al modo de línea de comandos se ven un poco diferentes de los comandos de mapeo del modo Insertar (porque el modo de línea de comandos carece del modo Insertar 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>'
Teclas de acceso rápido incorporadas para movimiento y edición
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
Referencia: :help ex-edit-index
imap jk <Esc>
) para que no tenga que romper su impulso y alcanzar su teclado para presionar la tecla.