Как поместить текущую строку вверху / в центре / внизу экрана в vim?

118

Любая более быстрая навигация для размещения линии, в которой курсор находится в данный момент,

  • верхняя часть экрана?
  • центр экрана?
  • нижняя часть экрана?
холодный морской тропический воздух
источник

Ответы:

153

z<CR>или zt помещает текущую строку в верхнюю часть экрана ( <CR>== Enter)

z.или zz помещает текущую строку в центр экрана

z-или zb помещает текущую строку в нижнюю часть экрана

( z<CR>, z.И z-помещает курсор в первой колонке , не пустой. zt, zzИ zbоставляет курсор в текущем столбце)

Дополнительную информацию о прокрутке можно получить по адресу http://vimdoc.sourceforge.net/htmldoc/scroll.html или
в типе vim.:help scroll-cursor

холодный морской тропический воздух
источник
14
Вы также можете использовать zzвместоz.
evilsoup
2
Я не слышал z.раньше. Я думаю, что я предпочитаю использовать две разные клавиши вместо двойного нажатия. Вы можете выполнять параллельные нажатия клавиш одновременно, при условии, что они приземляются в правильном порядке, а время между ударами может быть довольно коротким, что делает этот вариант очень быстрым. zИ .ключи зеркало друг к другу ( по крайней мере , на моей ан-ГБ клавиатуре). Вы могли бы разумно предпочесть двойное нажатие z, и это здорово, что у нас есть оба варианта.
Дрю Ноакс
15 лет VIM, и я не знал эту удобную мелочь! Upvote!
PnotNP
14

Вывод :help scroll-cursorупоминаний @mtk. Обратите внимание, что есть разница между zzи z..


Прокрутка относительно курсора (курсор-прокрутка)

Следующие команды перемещают окно редактирования (ту часть буфера, которую вы видите), удерживая курсор на той же строке:

z<CR>                   Redraw, line [count] at top of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zt                      Like "z<CR>", but leave the cursor in the same
                        column.  {not in Vi}

z{height}<CR>           Redraw, make window {height} lines tall.  This is
                        useful to make the number of lines small when screen
                        updating is very slow.  Cannot make the height more
                        than the physical screen height.

z.                      Redraw, line [count] at center of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zz                      Like "z.", but leave the cursor in the same column.
                        Careful: If caps-lock is on, this command becomes
                        "ZZ": write buffer and exit!  {not in Vi}

z-                      Redraw, line [count] at bottom of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zb                      Like "z-", but leave the cursor in the same column.
                        {not in Vi}

Прокрутка по горизонтали (прокрутка по горизонтали)

Для следующих четырех команд курсор следует за экраном. Если символ, на котором находится курсор, перемещается за пределы экрана, курсор перемещается к ближайшему символу, который находится на экране. Значение sidescroll не используется.

z<Right>    or
zl                      Move the view on the text [count] characters to the
                        right, thus scroll the text [count] characters to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

z<Left>      or
zh                      Move the view on the text [count] characters to the
                        left, thus scroll the text [count] characters to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

zL                      Move the view on the text half a screenwidth to the
                        right, thus scroll the text half a screenwidth to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

zH                      Move the view on the text half a screenwidth to the
                        left, thus scroll the text half a screenwidth to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

Для следующих двух команд курсор не перемещается в тексте, только текст прокручивается на экране.

zs                      Scroll the text horizontally to position the cursor
                        at the start (left side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}

ze                      Scroll the text horizontally to position the cursor
                        at the end (right side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}
Дрю Ноакс
источник