vim - остановить прокрутку после первого окончания файла - PullRequest
14 голосов
/ 06 ноября 2011

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

Редактировать: чтобы быть более точным, это поведение применяется только к прокрутке колесика мыши или навигации по клавише PgDown, которые заполняют экранэти несуществующие линейные метки.Если курсор перемещается построчно с помощью клавиши со стрелкой вниз, он корректно останавливается на последней строке файла.

Ответы [ 4 ]

10 голосов
/ 06 ноября 2011

Просто z b , чтобы выровнять текущую строку по нижней части окна.

например. G * +1008 * г B

Не удивительно, что есть семейство связанных движений панорамирования:

  • z j down
  • z k up
  • z t top
  • z b низ
  • z z центр (средний)
  • z z центр (средний)

Для полноты:

  • z l / z L вертикальная панорама вправо
  • z ч / z H вертикальная панорама влево

Также взгляните на scrolloff

Я использую

:set scrolloff=2

для сохранения минимального буфера в 2 строки до или после текущей строки курсора. Это делает эти движения панорамирования почти волшебными. Я провожу весь день, просматривая кодовые базы, используя только 1085 *

  • пейджинг C-d / C-u , hjkl и частые перемещения панорамирования с (в основном) z z
  • навигация } / {
  • ctags для всех других нужд навигации
1 голос
/ 06 ноября 2011

Нет, ваше описание неверно.

Когда вы прокручиваете строка за строкой вниз стрелками или клавишами j / k, Vim останавливается в нижней части экрана. То есть он не будет заполнять экран несуществующими строками.

Когда, однако, вы переходите на страницу за страницей с помощью PgDown / PgUp, тогда на экране могут появиться несуществующие строки. Этого нельзя избежать, поскольку клавиши PgDown / PgUp не спрыгивают строка за строкой.

1 голос
/ 06 ноября 2011

Я так не думаю. Но даже если бы они были, как бы вы себя вели, если бы в вашем файле было меньше строк, чем на экране? Вам нужно как-то отобразить эти несуществующие строки.

У вас должен был бы быть способ заставить vim отображать эти строки, если видна верхняя часть файла, но не позволять им отображаться, если верхняя часть не видна.

0 голосов
/ 25 августа 2015

Я только что нашел это (http://vimrc -dissection.blogspot.se / 2009/02 / fixing-pageup-and-pagedown.html ):

map <silent> <PageUp> 1000<C-U>
map <silent> <PageDown> 1000<C-D>
imap <silent> <PageUp> <C-O>1000<C-U>
imap <silent> <PageDown> <C-O>1000<C-D>

Что, кажется, работает для клавиш страницы. И после некоторых неудачных поисков прокрутки я пришел к следующему:

map <ScrollWheelUp> H5k
map <ScrollWheelDown> L5j

Вы теряете строку, но она все равно не очень полезна при прокрутке? Кроме того, вы также можете сделать:

map <ScrollWheelUp> <C-U>
map <ScrollWheelDown> <C-D>

Если вы не возражаете, очень быстрая прокрутка ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...