Подтвердить что ты не робот

В vim, как вы прокручиваете буфер, чтобы местоположение курсора было сосредоточено на экране?

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

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

4b9b3361

Ответ 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% от буфера сверху, но это настраивается. Это влияет на положение курсора как в нормальном, так и в режиме вставки.