Как сделать так, чтобы Vim всегда отображал несколько строк после EOF?

15

В Vim мне не нравится, как, когда вы достигаете конца файла, он помещает последнюю строку внизу экрана.

Есть ли в любом случае, чтобы последняя строка была чем-то вроде 10 строк над нижней частью экрана и просто делала пустые строки под ней?

Мигель Вера
источник
2
Когда курсор достигнет последней строки файла, если вы нажмете на zzнего, он перерисовает экран и поместит текущую строку в центр окна, которое должно отображаться через несколько ~строк после EOF.
user9433424
да, но если вы снова переместите курсор, снова поместив его внизу.
Мигель Вера
3
Похоже, у вас есть scrolloffнабор параметров. Попробуйте :set scrolloff=0и это поведение должно измениться.
Tumbler41
1
Вы можете прочитать свой ответ здесь: stackoverflow.com/questions/7406814/… Есть больше ответов на это, в основном это невозможно, только с обходными путями.
микрофон
Действительно поведение было исправлено! спасибо
Мигель Вера

Ответы:

16

Вы можете использовать ctrlEдля прокрутки вниз вашего файла, когда вы находитесь в конце файла, он добавит «виртуальную» строку, чтобы последняя строка файла не находилась внизу окна.

Кроме того, вы можете использовать опцию, scrolloffчтобы всегда позволять некоторые строки после вашего курсора, добавьте это в ваш .vimrc:

set scrolloff=10

Для получения более подробной информации см :h 'scrolloff'и :h CTRL-E.

statox
источник
1
К сожалению, установка scrolloffна 10 все равно не будет показывать строки ПОСЛЕ EOF, как хотел OP.
Tumbler41
Действительно, именно поэтому я предложил использовать CTRL-Eи scrolloffпросто «дополнительные». Теперь это частичное решение, OP может не принимать его, так как не дает полного ответа на вопрос.
statox
1
Хотя это только частичное решение, я думаю, CTRL-Eэто то, что я искал. Хотелось бы, чтобы был способ отображать строки после EOF автоматически.
Мигель Вера
@ Мигель Я рад, что это соответствует вашим потребностям. Я думаю, что было бы возможно создать отображение, которое будет вызываться <C-e>при прокрутке вниз, но я действительно не уверен, что это будет работать правильно ... Я попробую и посмотрю, что можно сделать, но я не уверен, что Я смогу создать что-то удобное.
statox
2

Самым простым решением, на мой взгляд, было добавление zzк jи k. Это имеет основной побочный эффект центрирования вашего курсора. Я не возражаю и предпочитаю это вытягивать шею. Я пытался scrolloffи CTRL-Eпросто неудобно.

Введите следующее в :или .vimrc

nnoremap j jzz

nnoremap k kzz

Источник: http://vim.wikia.com/wiki/Keep_your_cursor_centered_vertically_on_the_screen

Карлос Бдение
источник