Não deixe o vim rolar abaixo da linha inferior

Não deixe o vim rolar abaixo da linha inferior

Como posso desativar o vim que me permite rolar até o final de um arquivo?

Responder1

Vimna verdade não deixa vocêrolagemalém do final do arquivo (como mover o cursor além da última linha existente), masmostravocê algumas linhas atrás da última, porque tem quemostre algo.

Não pode ser desativado, desculpe.Não, a menos que você queira baixar as fontes do Vim (afinal, é de código aberto) eviolinocom isso. Ele insere ~'s nativamente em linhas que não existem, porque, bem, ele precisa mostrar alguma coisa. Todos os editores fazem isso.

Como alguém sugeriu, existem soluções alternativas para isso ... mas isso é tudo - soluções alternativas. E nenhum deles funciona muito bem. Eu não recomendaria nenhum deles.

Responder2

Ao chegar ao final do arquivo, você pode usar zzou ztpara mover a linha atual para o meio ou topo da janela, respectivamente. Você pode fazer isso a qualquer momento, independentemente da localização no arquivo. A scrolloffconfiguração fará com que o cursor fique, por exemplo, 5 linhas na parte superior ou inferior da janela se você tiver definido como 5 ( set scrolloff=5). No entanto, isso não funciona quando você chega à parte superior ou inferior do arquivo.

Responder3

Sem um hack bastante feio que provavelmente pareceria visualmente perturbador e tornaria o Vim lento, você não pode fazer o que deseja. Basicamente você teria que configurar algo como um autocmd para os eventos CursorMoved/CursorMovedI que tentavam detectar se a parte inferior do arquivo foi exibida e, em caso afirmativo, executar alguns comandos de modo normal para forçar a posição de rolagem.

É importante notar (e como dizem as pessoas no link que Johnny forneceu em seu comentário), o Vim não é o único aplicativo que se comporta assim, e você não pode realmente rolar além do final de um arquivo no Vim - a última linha deve estar sempre visível.

Responder4

Se você não se importa que mova o cursor, isso funciona:

noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j

informação relacionada