2010-04-04 22 views
26

Un comportamiento frustrante en vim es que cuando muevo el cursor hacia la derecha o hacia la izquierda (respectivamente "l" o "h") y estoy al final o al principio de la línea, mi cursor no se mueve a la primera columna de la siguiente línea ni a la última columna de la línea anterior.Ir automáticamente a la siguiente línea en vim

¿Hay alguna manera de cambiar este comportamiento?

+1

esto no es exactamente una cuestión de programación, pero ... –

+0

... pero es una pregunta con respecto a "herramientas de software utilizadas por los programadores ". :) (es cierto que no es un "problema exclusivo del desarrollo de software"). – lindhe

+1

'set nocompatible' había desactivado esa característica en mi configuración' vim' – Paschalis

Respuesta

24

Usted puede utilizar el ajuste whichwrap hacer h y l envoltura alrededor del inicio y final de las líneas individuales:

set whichwrap+=h,l 

Sin embargo, Vim de La documentación recomienda no hacerlo, probablemente porque podría tener efectos secundarios inesperados (como romper complementos o cambiar la forma en que funcionan las asignaciones de teclas comunes).

Como alternativa, puede hacer lo que lo Matti Virkkunen recomienda:

set whichwrap+=<,>,[,] 

Esto deja h y l con su comportamiento predeterminado, pero permite que las teclas de flecha izquierda y derecha para envolver alrededor de las líneas. (Esto es lo que hago, y funciona bien.)

Puede que también quiera echar un vistazo a la configuración backspace, para controlar cómo Retroceso, Eliminar, Control + W y Control + U funcionan en el modo Insertar. Establecí el mío así:

set backspace=indent,eol,start 

Eso me permite retroceder en casi todo.

Para obtener más información, consulte los siguientes temas en la ayuda de Vim:

:help 'whichwrap 
:help 'backspace 
+0

¿Puedes explicarme qué hacen? (específicamente, ¿qué significa '<', '>', '[', and ']' significa?) –

+0

Aquí hay una versión amigable para el navegador de ': help 'whichwrap': https://vimhelp.appspot.com/options.txt. html #% 27whichwrap% 27 –

8

poner lo siguiente en su .vimrc:

set whichwrap+=<,>,[,] 
+0

¿Puede explicarme qué hace esto? –

+0

@QPaysTaxes: la configuración de wrap-how especifica qué teclas se ajustarán a la línea siguiente/anterior cuando se presionen, y el personaje luego se referirá a las teclas del cursor en el modo normal e insertará el modo respectivamente. Puedes agregar, p. 'h, l' también tiene las teclas de movimiento vim, si lo desea. –

Cuestiones relacionadas