Como estou usando o Vim em um terminal, a rolagem com a roda de rolagem usa a sintaxe \e[A
e \e[B
(onde \e
simboliza \x1b
ou escape).
No entanto, o Vim interpreta isso movendo o cursor para cima ou para baixo em uma linha. O comportamento desejado é que a tela é movida para cima ou para baixo, como <C-e>
e <C-y>
fazer.
Como posso dizer ao Vim para mover a tela quando usei minha roda de rolagem, mantendo o cursor na mesma linha? Isso deve funcionar em todos os modos comuns (inserção, normal, seleção visual).
Eu já tentei, por exemplo, :nnoremap <esc>[A <C-e>
(substituir <esc>
por um caractere de escape literal inserido por Ctrl+V Esc), mas isso provou ser inútil.
Estou usando o Vim 7.4.52 no Ubuntu 14.04 com GNOME.
Respostas:
Como o @Doorknob disse em seu comentário,
:set mouse=a
corrige o problema.fonte
mouse=a
? Não quero cliques acidentais que atrapalhem meu fluxo de edição.a
emmouse=a
significaall
(não anexado). from:help mouse
: "o mouse pode ser ativado para diferentes modos ... Normalmente, você habilitaria o mouse nos quatro modos com:: set mouse = a" pelo menos no meu vim quando eu habilitei que ele não mexia na troca de modo (apenas permitiu a rolagem - e "clique para ir para a linha")set mouse=a
sem cliques acidentais, atrapalha o fluxo,:map <LeftMouse> <nop>
faria o truque.O comportamento que você quer é o que acontece no meu vim. Não consigo encontrar uma configuração que a ligue / desligue. Talvez verifique o : ajuda rolagem ?
scrolloff
pode estar envolvido.Você também pode considerar o uso de marcas como solução alternativa.
fonte
vim -u NONE
). Este é o Vim 7.4 no Ubuntu 14.04 com GNOME..vimrc
(apenasset mouse=a
).:help scrolling
diz que o comportamento de rolagem é específico da plataforma. Estou usando o vim no iterm2 no OSX.:set mouse=a
corrigiu o problema para mim. Edite isso na sua resposta, e eu aceito. Obrigado!