No vim, como faço para que as teclas de seta esquerda e direita mudem de linha?


25

No vim, minhas teclas de seta funcionam corretamente, movendo-se para cima, baixo, esquerda e direita conforme o esperado, com uma exceção. No início de uma linha, a seta esquerda não faz nada, em vez de ir para o último caractere da linha anterior. No final de uma linha, a seta para a direita não faz nada, em vez de ir para o primeiro caractere da próxima linha.

Existe uma configuração que eu possa alterar para obter o comportamento esperado?


4
Eu acho que a maioria dos usuários do VIM recomendaria que você não use as teclas de seta.
user12612

@ user12612 por que exatamente?
luchonacho 30/09

@luchonacho Acho que a idéia é que usuários sérios do VIM acreditem que seus dedos não devem sair da linha inicial do teclado para navegar onde você está no seu texto.
N

Respostas:


26

Depois de pesquisar mais no Google, achei a resposta para usar a whichwrapopção.

Adicionei a seguinte linha ao meu .vimrc:

set whichwrap+=<,>,[,]

As opções <e >ativam a configuração desejada para o modo normal [e ]ativam a configuração desejada para o modo de inserção.


1
(Por que este não era o ajuste no meu sistema padrão é um mistério)
nohat

Isso não parece afetar o comportamento das h j k lchaves.
Sebastián Grignoli

Certo, existem outros valores para hej. Consulte :help 'whichwrap'ou vimhelp.appspot.com/options.txt.html#%27whichwrap%27 . k e eu realmente não nos aplicamos, pois estamos falando de comportamento esquerdo / direito no início / fim das linhas.
Adam Monsen 28/07

9

Adicione isso ao seu .vimrc:

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

0

Esse é o comportamento padrão - você sempre pode usar Início e Fim para pular para o início e o fim de uma linha.


5
O OP deseja alterar o comportamento padrão. É por isso que ele perguntou aqui em primeiro lugar.
akira

0

Você pode contornar isso usando w e b, que serão divididos em linhas.


Mas b leva para você o primeiro caractere da última palavra da linha anterior. Não há realmente nenhuma maneira de fazer a seta esquerda se mover para o último caractere da linha anterior quando no primeiro caractere de uma linha?
nohat 4/09/09

Sim, eu sei, não é uma solução real.
hasen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.