Можно ли автоматически сделать Vim по центру линии при наборе текста? - PullRequest
0 голосов
/ 25 апреля 2018

При наборе текста, курсор перемещается к нижней части экрана. Мне регулярно приходится выходить из режима INSERT, чтобы набрать zz, чтобы Vim центрировал линию, на которой находится мой курсор. Я хотел бы что-то более автоматическое: например, если курсор переступает порог (скажем, на 5-8 строк ниже «линии в центре экрана»), Vim будет zz напрямую, без выхода из режима INSERT.

Это может нарушить процесс набора текста, но, поскольку я буду печатать, мои глаза будут смотреть на экран и видеть, что что-то происходит . Я думаю, что выход из режима INSERT более разрушительный.

Существует ли опция конфигурации или плагин, поддерживающий этот вариант использования?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Следующее будет автоматически вертикальным центральным курсором, когда он находится в последней 1/3 буфера при наборе любого символа или входе в режим вставки в этой области (добавьте к .vimrc):

augroup autoCenter
  autocmd!
  autocmd InsertCharPre,InsertEnter * if (winline() * 3 >= (winheight(0) * 2))
                                            \| norm! zz
                                        \| endif
augroup END

:h autocmd-events и добавьте любое другое событие , которое может потребоваться для центрирования.

0 голосов
/ 25 апреля 2018

Вы можете держать линию курсора по центру, установив для параметра 'scrolloff' большое значение:

set scrolloff=999

Описание 'scrolloff' со страницы справки:

Minimal number of screen lines to keep above and below the cursor.
This will make some context visible around where you are working.  If
you set it to a very large value (999) the cursor line will always be
in the middle of the window (except at the start or end of the file or
when long lines wrap).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...