Как отцентрировать текущую строку на экране?

23

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

thameera
источник

Ответы:

28

В z.и zzкомандах будут центрирования строки , в которой находится курсор. z.также перемещает курсор к первому непробельному символу в строке, zzудерживая курсор там, где он есть.

Есть аналогичные команды для верхней ( z<CR>/ zt) и нижней ( z-/ zb) окна.

Версии этих команд, заканчивающиеся буквой, сохраняют столбец курсора, а те, которые заканчиваются пунктуацией, перемещают курсор.

jamessan
источник
6

Введите, zzчтобы центрировать текущую строку на экране:

введите описание изображения здесь

Отменить
источник
Отлично! Я добавил это в свой Autocmd BufReadPost, чтобы возобновить редактирование с восстановленной и отцентрированной линией курсора на экране:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | "normal! g'\"zz"
John P
Upvote для анимации :-)
2

Да, в обычном режиме вы можете использовать zzдля этого. Но, как предупреждают документы , будьте осторожны с capslock, так как ZZзапишет буфер в файл и выйдет.

HAL 9001
источник
По какой-то причине это стало огромным предметом спора в другом потоке SO / SE ... консенсус, похоже, заключался в том, что вы должны удерживать shift неограниченно долго по мере необходимости и переназначить клавишу caps lock на системном уровне, чтобы убрать искушение, et voilà нет больше заглавных букв. В противном случае это ваша собственная вина. Я предполагаю, что им никогда не приходилось иметь дело с макросами препроцессора ...
Джон П,
1

В обычном режиме zzпереместит линию, находящуюся под курсором, в центр экрана.

Pythor
источник