Como faço para o Vim sempre exibir várias linhas após o EOF?

14

No Vim, não gosto de como, quando você chega ao final do arquivo, coloca a última linha na parte inferior da tela.

Existe alguma maneira de fazer a última linha ser algo como 10 linhas acima da parte inferior da tela e apenas fazer linhas em branco embaixo dela?

Miguel Vera
fonte
2
Quando o cursor atingir a última linha do arquivo, se você o pressionar zz, redesenhará a tela e posicionará a linha atual no centro da janela, que deve exibir algumas ~linhas após o EOF.
User9433424
sim, mas se você mover o cursor novamente, posicionando-o novamente na parte inferior.
Miguel Vera
3
Parece que você tem a scrolloffopção definida. Tente :set scrolloff=0e esse comportamento deve mudar.
Tumbler41
1
Você pode ler sua resposta aqui: stackoverflow.com/questions/7406814/… Há mais respostas para isso, basicamente não é possível, apenas com soluções alternativas.
Mike
De fato, o comportamento foi corrigido! obrigado
Miguel Vera

Respostas:

16

Você pode usar ctrlEpara rolar o arquivo para baixo, quando estiver no final do arquivo, ele adicionará uma linha "virtual" para que a última linha do arquivo não fique na parte inferior das janelas.

Além disso, você pode usar a opção scrolloffde sempre deixar algumas linhas após o cursor, adicione isso ao seu .vimrc:

set scrolloff=10

Para mais detalhes, consulte :h 'scrolloff'e :h CTRL-E.

statox
fonte
1
Infelizmente, definir scrolloff10 ainda não mostrará as linhas APÓS EOF, como o OP queria.
Tumbler41
Na verdade, é por isso que sugeriu o uso CTRL-Ee scrolloffera apenas "adicional". Agora é uma solução parcial, o OP está livre para não aceitá-lo, pois não responde completamente à pergunta.
statox
1
Embora seja apenas uma solução parcial, acho CTRL-Eque é o que eu estava procurando. Eu adoraria se houvesse uma maneira de exibir as linhas após o EOF automaticamente.
Miguel Vera
@ Miguel Estou feliz que se adapte às suas necessidades. Acho que seria possível criar um mapeamento que chamaria <C-e>quando você rolar para baixo, mas não tenho certeza se funcionaria corretamente ... tentarei ver o que é possível fazer, mas não tenho certeza. será capaz de criar algo conveniente.
Statox
2

A solução mais fácil, na minha opinião, foi a adição zzde je k. Tem o principal efeito colateral de centralizar o cursor. Eu não me importo e prefiro muito a esticar o pescoço. Eu tentei scrolloffe CTRL-Eé apenas desconfortável.

Digite o seguinte em :ou .vimrc

nnoremap j jzz

nnoremap k kzz

Origem: http://vim.wikia.com/wiki/Keep_your_cursor_centered_vertically_on_the_screen

Carlos Vigil
fonte