В vim, как вы прокручиваете буфер, чтобы расположение курсора было в центре экрана? - PullRequest
36 голосов
/ 13 сентября 2011

В vim часто я буду переходить к отметке, которую я сделал, или к результату поиска, и курсор будет находиться в самом низу или в самом верху экрана. На данный момент, чтобы экран было легче читать, я хочу прокрутить буфер так, чтобы текст под курсором находился посередине экрана.

Возможно ли это в vim? Как ты это делаешь?

Ответы [ 5 ]

50 голосов
/ 13 сентября 2011

Это будет центрировать текущую строку

zz

При желании вы можете установить для scrolloff что-то большое, например 999, и рабочая линия всегда будет в центре, кроме случаев, когда вы находитесь в начале или конце файла.

:set scrolloff=999
12 голосов
/ 11 октября 2012

Есть способ сохранить курсор в центре даже вблизи EOF.

scrolloff = 999 работает нормально, за исключением конца буфера, где он не центрирует курсор, я не знаю ни одного исправленияЭто позволяет scrolloff держать курсор в центре конца буфера.

Альтернативой scrolloff = 999 является переназначение ваших навигационных команд для центрирования на курсоре.Я делаю следующее в моем _vimrc / .vimrc:

" Avoids updating the screen before commands are completed
set lazyredraw

" Remap navigation commands to center view on cursor using zz
nnoremap <C-U> 11kzz
nnoremap <C-D> 11jzz
nnoremap j jzz
nnoremap k kzz
nnoremap # #zz
nnoremap * *zz
nnoremap n nzz
nnoremap N Nzz

Это будет держать курсор по центру вертикально до конца буфера:)

6 голосов
/ 13 сентября 2011

Опция 'scrolloff' (смещение прокрутки) определяет количество строк контекста, которые вы хотели бы видеть над и под курсором.Установка, скажем, 5 делает так, чтобы при перемещении / прокрутке всегда было видно 5 линий над и под курсором.Установка большого значения scrolloff приводит к тому, что курсор остается в средней строке, когда это возможно:

:set so=999

Чтобы восстановить нормальное поведение, введите:

:set so=0

Если вы переключаетесьмежду ними вы можете создать отображение для быстрого переключения:

:nnoremap <Leader>ts :let &scrolloff=999-&scrolloff<CR> " ToggleScrolloff
2 голосов
/ 13 сентября 2011

Вы должны нажать z дважды, например: ZZ

0 голосов
/ 08 января 2016

Плагин scrollfix.vim отлично подходит для этого.Это то, что я использую, и это работает как шарм.Вы можете найти его на github здесь.

Плагин scrollfix позволяет вам точно контролировать, где (вертикально вдоль буфера) ваш курсор остается фиксированным.По умолчанию это 60% буфера сверху, но это настраивается.Это влияет на положение курсора как в обычном, так и в режиме вставки.

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