В vim, как вы прокручиваете буфер, чтобы местоположение курсора было сосредоточено на экране?
В vim часто я перехожу к знаку, который я сделал, или к результату поиска, и курсор будет находиться в самом низу или в самом верху экрана. На этом этапе, чтобы экран был легче читать, я хочу прокрутить буфер так, чтобы текст под курсором находился посередине экрана.
Возможно ли это в vim? Как вы это делаете?
Ответы
Ответ 1
Это центрирует текущую строку
zz
Необязательно вы можете установить scrolloff
нечто большее, чем 999
, и рабочая линия всегда будет находиться в центре, за исключением случаев, когда вы находитесь к началу или конец файла.
:set scrolloff=999
Ответ 2
Существует способ держать курсор в центре даже вблизи EOF.
scrolloff = 999 отлично работает, кроме ближайшего конца буфера, где он не центрирует курсор, я не знаю ни одного исправления, которое позволяет прокручивать курсор по центру в конце буфера.
Альтернативой 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
Это будет удерживать курсор в вертикальном направлении до конца буфера:)
Ответ 3
Параметр "scrolloff" (сдвиг прокрутки) определяет количество строк контекста, которые вы хотели бы видеть выше и ниже курсора. Устанавливая его, скажем, 5, делает так, что во время перемещения/прокрутки всегда отображаются 5 линий, видимых выше и ниже курсора. Установка "scrolloff" на большое значение приводит к тому, что курсор остается в средней линии, когда это возможно:
:set so=999
Чтобы восстановить нормальное поведение, введите:
:set so=0
Если вы переключаетесь между ними много, вы можете создать сопоставление для быстрого переключения:
:nnoremap <Leader>ts :let &scrolloff=999-&scrolloff<CR> " ToggleScrolloff
Ответ 4
Вам нужно дважды нажать z, например:
ZZ
Ответ 5
Плагин scrollfix.vim отлично подходит для этого. Это то, что я использую, и это работает как шарм. Вы можете найти его на github здесь.
Плагин scrollfix позволяет вам точно контролировать, где (по вертикали вдоль буфера) ваш курсор остается фиксированным. По умолчанию он находится в 60% от буфера сверху, но это настраивается. Это влияет на положение курсора как в нормальном, так и в режиме вставки.