Как сделать так, чтобы 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.


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.