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?

Sin sombrero
fuente
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.

Sin sombrero
fuente
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,[,]
gpista
fuente
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.

salmón
fuente
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.

Hasen
fuente
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