Cómo saltar al principio o al final de la línea en vim + OS X
17
En la terminal, puedo hacer esto presionando shift + home y shift + end, pero no parece funcionar en vim. Las teclas de inicio y fin solo desplazan la ventana del terminal. Me gustaría saltar en el modo de edición.
En el modo de comando, se puede encontrar en la Hoja de trucos Vim (0 y $): fprintf.net/vimCheatSheet.html . Sin embargo, no sé sobre el modo de edición.
Gnoupi
Respuestas:
13
Esta respuesta asume que está usando vim en una ventana de Terminal .
Los enlaces predeterminados para Inicio y Fin son un poco diferentes de lo que un programa esperaría en función de la configuración habitual de TERM (es decir, una variante xterm). Si desea seguir con los enlaces predeterminados (y tener que usar las variantes Shifted en la Terminal ), puede intentar poner algo como esto en su .vimrc:
:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>
De lo contrario, puede intentar ajustar los códigos que envía Terminal cuando usa Inicio y Fin (incluso sin cambiar, si lo desea). Una búsqueda probablemente muestre algunos lugares que describen cómo hacerlo ( aquí hay uno ). La idea básica es que desea que Terminal envíe ESC [1 ~ en lugar de ESC [H para Inicio y ESC [4 ~ en lugar de ESC [F para Fin (o Shift-Home / Shift-End si desea mantener Home / Fin para acceder al scrollback). Describiría el proceso con más detalle, pero solo tengo 10.4, y sé que Terminal cambió mucho en 10.5 y posteriores.
Con iTerm y Vim puede usar las flechas fn + derecha e izquierda en modo de inserción para saltar al principio o al final de la línea. Con Terminal.app usas shift + flechas .
El OP quiere saltar en el modo de edición, no en el modo de comando, por lo que estas teclas literalmente ingresarán 0y $.
slhck
1
Como una adición a la respuesta de Chris , también puede lograr la navegación de palabras (con Option+arrowteclas), simplemente agregando esas cuatro líneas:
:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el
Observe que oes minúscula, por lo que no saldrá del insertmodo para la operación. También puede cambiar las mayúsculas Oen la respuesta original para obtener el mismo efecto.
En MacVim, puede usar el Comando 'Flecha izquierda' y el Comando 'Flecha derecha' para ir al principio y al final de la línea mientras está en modo de edición.
Respuestas:
Esta respuesta asume que está usando vim en una ventana de Terminal .
Los enlaces predeterminados para Inicio y Fin son un poco diferentes de lo que un programa esperaría en función de la configuración habitual de TERM (es decir, una variante xterm). Si desea seguir con los enlaces predeterminados (y tener que usar las variantes Shifted en la Terminal ), puede intentar poner algo como esto en su
.vimrc
:De lo contrario, puede intentar ajustar los códigos que envía Terminal cuando usa Inicio y Fin (incluso sin cambiar, si lo desea). Una búsqueda probablemente muestre algunos lugares que describen cómo hacerlo ( aquí hay uno ). La idea básica es que desea que Terminal envíe ESC [1 ~ en lugar de ESC [H para Inicio y ESC [4 ~ en lugar de ESC [F para Fin (o Shift-Home / Shift-End si desea mantener Home / Fin para acceder al scrollback). Describiría el proceso con más detalle, pero solo tengo 10.4, y sé que Terminal cambió mucho en 10.5 y posteriores.
fuente
Con iTerm y Vim puede usar las flechas fn + derecha e izquierda en modo de inserción para saltar al principio o al final de la línea. Con Terminal.app usas shift + flechas .
fuente
use 0 y $ para moverse al principio y al final de la línea. Consulte este sitio: http://alvinalexander.com/linux/vi-vim-editor-end-of-line .
fuente
0
y$
.Como una adición a la respuesta de Chris , también puede lograr la navegación de palabras (con
Option+arrow
teclas), simplemente agregando esas cuatro líneas:Observe que
o
es minúscula, por lo que no saldrá delinsert
modo para la operación. También puede cambiar las mayúsculasO
en la respuesta original para obtener el mismo efecto.fuente
En MacVim, puede usar el Comando 'Flecha izquierda' y el Comando 'Flecha derecha' para ir al principio y al final de la línea mientras está en modo de edición.
fuente
Vaya a Terminal -> Preferencias -> Perfiles -> Teclado y agregue:
Clave: ↖ Acción: \ 033OH
Clave: ↗ Acción: \ 033OF
fuente