En vim, ¿cómo hago que las teclas de flecha izquierda y derecha cambien de línea?


25

En vim, mis teclas de flecha funcionan correctamente, moviéndose hacia arriba, hacia abajo, hacia la izquierda y hacia la derecha como se esperaba, con una excepción. Al comienzo de una línea, la flecha izquierda no hace nada, en lugar de ir al último carácter de la línea anterior. Al final de una línea, la flecha derecha no hace nada, en lugar de ir al primer carácter de la línea siguiente.

¿Hay alguna configuración que pueda cambiar para obtener el comportamiento que espero?


44
Creo que la mayoría de los usuarios de VIM recomendarían que no use las teclas de flecha.
usuario12612

@ user12612 ¿por qué exactamente?
luchonacho

@luchonacho Creo que la idea es que los usuarios serios de VIM sostienen que sus dedos no deben salir de la fila de inicio de su teclado para navegar hacia donde se encuentra en su texto.
nohat

Respuestas:


26

Después de buscar más en Google, encontré que la respuesta es usar la whichwrapopción.

Agregué la siguiente línea a mi .vimrc:

set whichwrap+=<,>,[,]

Las opciones <y >activan la configuración deseada para el modo normal [y ]activan la configuración deseada para el modo de inserción.


1
(Por qué esta no era la configuración predeterminada en mi sistema es un misterio)
nohat

Esto no parece afectar el comportamiento de las h j k lclaves.
Sebastián Grignoli

Correcto, hay otros valores para h y j. Ver :help 'whichwrap'o vimhelp.appspot.com/options.txt.html#%27whichwrap%27 . k y l realmente no se aplican ya que estamos hablando del comportamiento izquierda / derecha al principio / final de las líneas.
Adam Monsen

9

Agregue esto a su .vimrc:

set whichwrap+=<,>,h,l,[,]

0

Este es el comportamiento predeterminado: sin embargo, siempre puede usar Inicio y Fin para saltar al inicio y al final de una línea.


55
OP quiere cambiar el comportamiento predeterminado. Es por eso que preguntó aquí en primer lugar.
akira

0

Puede solucionar esto utilizando w y b que se ajustarán a través de las líneas.


Pero b te lleva al primer carácter de la última palabra de la línea anterior. ¿Realmente no hay forma de hacer que la flecha izquierda se mueva al último carácter de la línea anterior cuando está en el primer carácter de una línea?
nohat

Sí, lo sé, no es una solución real.
hasen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.