Algunos pueden argumentar que moverse con VIM native keyboard shortcuts no es una solución, pero para mí es muy incómodo y muy ineficiente. Especialmente la parte donde necesita cambiar entre el modo insert
y el modo normal
para pasar a la siguiente palabra.
Es por eso que se me ocurrió una solución basada en this answer en SuperUser. La idea es asignar la entrada proporcionada por el Terminal.app
directamente en VIM. La respuesta en SU muestra qué poner en su archivo vimrc
para que las teclas Inicio/Final funcionen como se esperaba.
Mi versión modificada a continuación incluye la navegación Option+arrow
(o Alt+arrow
) en las palabras. Intenté imitar el comportamiento de la Terminal moviéndose lo más cerca que pude. Así que presionar Option+Right
(Alt+Right
) moverá el cursor al siguiente carácter después de la palabra (en oposición al último carácter de la palabra, que es el comportamiento nativo de VIM w
).
let tp=$TERM_PROGRAM
if tp == 'Apple_Terminal'
:" map Mac OS X Terminal.app
" map Home/End:
:map <ESC>[H <Home>
:map <ESC>[F <End>
" small 'o' letter in <C-o> means no exit from the insert mode
:imap <ESC>[H <C-o><Home>
:imap <ESC>[F <C-o><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>
" map Option+Left/Option+Right:
" for this to work you must have the bindings in Settings > Keyboard set
" as follows:
" 'option cursor left' to '\033b'
" 'option cursor right' to '\033f'
:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el
endif
Como una pequeña, pero significativa bono llegue a casa de navegación/Fin sin salir del modo insert
. Probado en 10.8.5
.
'w' en modo normal es la mejor manera de moverse palabra por palabra. – alternative
Puede usar^O en el modo de inserción para ejecutar un comando de modo normal y permanecer en el modo de inserción, como^Ow. –