Vim - остановить прокрутку после завершения первого файла
По умолчанию при прокрутке вниз до конца отображаемого буфера в окне vim вы можете прокручивать до тех пор, пока последняя строка файла не окажется в первой строке области отображения vim. Все остальные строки области отображения отмечены символами "~".
Есть ли конфигурация для остановки прокрутки, когда последняя строка файла находится внизу окна vim?
Изменить:
Чтобы быть более точным, это поведение применимо только к прокрутке колесика мыши или к навигации по PgDown, которая заполняет экран теми несуществующими метками линии. я курсор перемещается по строкам с помощью клавиши со стрелкой вниз, он останавливается правильно в последней строке файла.
Ответы
Ответ 1
Просто z b, чтобы выровнять текущую строку в нижней части окна.
например. G z b
Не следует ожидать, что существует семейство связанных движений панорамирования:
- z j вниз
- z k вверх
- z t top
- z b внизу
- z z центр (средний)
- z z центр (средний)
Для полноты:
- z l/z l вертикальная панорама вправо
- z h/z h вертикальная панорама влево
Кроме того, посмотрите scrolloff
Я использую
:set scrolloff=2
всегда сохранять минимальный буфер из двух строк до или после текущей строки курсора. Это делает эти движения панорамирования почти волшебными. Я провожу весь день, просматривая базы кода, используя только
- paging C-d/C-u, hjkl и частые переходы с панорамированием (в основном) z z
- Навигация }/{
- ctags для всех других потребностей в навигации
Ответ 2
Я так не думаю. Но даже если бы было, как бы вы хотели, чтобы он вел себя, если в вашем файле было меньше строк, чем на вашем экране? Вам нужно будет каким-то образом отобразить эти несуществующие строки.
Вам нужно будет указать способ vim отображать эти строки, если верхняя часть файла находится в поле зрения, но не позволяет им отображать, если верх не отображается.
Ответ 3
Нет, ваше описание неверно.
Когда вы прокручиваете строку за строкой вниз со стрелками или с помощью кнопок j/k, Vim остановится в нижней части экрана.
То есть, он не будет заполнять экран несуществующими строками.
Если, однако, один идет вниз по страницам с помощью PgDown/PgUp, тогда он может получить несуществующие строки на экране. Этого нельзя избежать, так как клавиши PgDown/PgUp не прыгают вниз по строкам.
Ответ 4
Я только что нашел это (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>
Если вы не против очень быстрой прокрутки...