Недавно я обнаружил ярлыки Ctrl+ Eи Ctrl+ Yдля Vim, которые соответственно перемещают экран вверх и вниз с шагом в одну строку, не перемещая курсор .
Знаете ли вы какую-либо команду, которая оставляет курсор там, где он есть, но перемещает экран так, чтобы строка с курсором стала первой строкой? (наличие команды для последней строки было бы хорошим бонусом).
Я могу добиться этого, вручную нажимая Ctrl+ E(или Ctrl+ Y) нужное количество раз, но было бы неплохо иметь команду, которая каким-то образом это делает напрямую.
Любые идеи?
vim
scroll
cursor-position
ereOn
источник
источник
Ответы:
( Осторожноzz , если вы Caps Lockслучайно включили, вы сохраните и выйдите
vim
!)источник
xdotool
илиtriggerhappy
. Наконец, отобразите свое состояние блокировки прописными буквами (это нельзя сделать в Vimscript.) ...xev -q
,cat /proc/bus/input/devices
чтобы найти устройство для запроса иevtest
илиthd ... --dump /dev/input/event<#>
для проверки состояния и т.д. Если вы абсолютно необходимы сделать общесистемное переназначение, по крайней мере своп два замка , как колпачки <-> Num - но проблема в том, что он забывает, что он включен, потому что, если вы хотели его раньше, вы будете использовать его на любой карте. Риск взлома Vim перед файлами / пользователем / системой.confirm()
. Кроме того, вместо сопоставления caps lock с ctrl, вы можете сопоставить его с ключом или комбинацией, понятной, но не отображенной Vim, и затем эмулировать caps lock исключительно в режиме вставки / замены, вручную или с помощью чего-то вроде github.com/tpope/ Vim-Capslock . Вам, вероятно, не понадобится это вне Vim, но если вы это сделаете, напишите сценарий xmodmap, чтобы отменить ваши изменения, или посмотрите, поддерживает ли программа собственные отображения (и делают заметки)Дополнительно:
Ctrl- yи Ctrl- eизменять положение курсора только в том случае, если он будет перемещен за пределы экрана.
Предоставлено http://www.lagmonster.org/docs/vi2.html
источник
:help CTRL-E
говоритMnemonic: Extra lines.
Vim требует, чтобы курсор постоянно находился на текущем экране, однако вы можете добавить в закладки текущую позицию, прокрутить круг и затем вернуться туда, где вы были.
источник
Ctrl-O
для другого действительно великого, и "backtick, period" возвращает вас туда, где вы в последний раз редактировали.mg
, прокрутить вокруг, перейти к отметке,'g
и все готово. Теперь вы можете вызвать настраиваемую клавишу, чтобы обойти, и вы почувствуете, как курсор никогда не покинул текущую позицию. Вуаля!Вот мое решение в vimrc:
Так, чтобы курсор оставался в середине экрана, а экран двигался вверх или вниз.
источник
Для того, чтобы оставить курсор в той же колонке при использовании Ctrl+ D, Ctrl+ F, Ctrl+ B, Ctrl+ U, G, H, M, L,gg
Вы должны определить следующую опцию:
источник
Я удивлен, что никто не использует
Scrolloff
опцию, которая держит курсор в середине страницы. Попробуйте это с:Это первый рекомендуемый метод в вики Vim, который хорошо работает.
источник
:set scrolloff=4
потребуется, чтобы курсор всегда находился на расстоянии как минимум 4 строки от верхней или нижней части окна, чтобы у вас всегда был хотя бы небольшой контекст.Я использовал эти сочетания клавиш в прошлом ( примечание: отдельные нажатия клавиш, например, нажмите z , отпустите, нажмите следующую клавишу):
z enter -> перемещает текущую строку в верхнюю часть экрана
z . -> перемещает текущую строку в центр экрана
z - -> перемещает текущую строку вниз
Если это не очевидно:
enterозначает Returnили Enterключ.
. означает клавишу DOT или «полный останов» (
.
).-означает ключ HYPHEN (
-
)Что бы это ни стоило, z.избегайте опасности сохранения и закрытия Vi, случайно набрав, ZZесли включен caps-lock.
источник
Вы можете поставить перед вашими командами перемещения курсора число, и это будет повторять эту команду много раз
10Ctrl+ Eсделает Ctrl+ E10 раз вместо одного.
источник
zEnter делает именно то, что просит этот вопрос.
Это работает там, где странно zzне будет работать (vim 7.4.1689 на Ubuntu 2016.04 LTS без специального .vimrc)
источник
Вы можете найти полезные ответы на " Прокрутка Vim относительно курсора, пользовательское отображение ".
Вы можете использовать
ScrollToPercent(0)
из этого вопроса, чтобы сделать это.источник
Иногда полезно для прокрутки текста с Kи Jключами, поэтому я эту функцию «прокрутки» режим в моем .vimrc (также связанный с zs).
Смотрите scroll_mode.vim .
источник
моя мнемоника для прокрутки ...
При добавлении к другим ответам также обращайте внимание
ze
иzs
, что означает: перемещать экран влево / вправо от курсора (без перемещения курсора)также посмотрите на положение
h
и,l
иt
иb
и (с помощью qwertz-клавиатуры)c-e
иc-y
(также «y» указывает на нижнюю часть) на клавиатуре, чтобы запомнить, где движется экран.источник
Я написал плагин, который позволяет мне перемещаться по файлу без перемещения курсора. Он основан на сгибании линий между вашей позицией и вашей целевой позицией, а затем перепрыгивании через сгиб или отмене и не двигайтесь вообще.
Также легко быстро переключаться между курсором в первой строке, последней строкой и курсором в середине, просто щелкнув мышью j, kили lкогда вы находитесь в режиме плагина.
Я думаю, это было бы хорошо здесь.
источник
Введите vim и введите:
:help z
zэто команда vim для перерисовки, поэтому она перерисовывает файл относительно того места, где вы поместили курсор. У вас есть следующие варианты:
z+- Перерисовывает файл с курсором в верхней части окна и сначала непустым символом вашей строки.
z-- Перерисовывает файл с курсором внизу окна и сначала непустым символом вашей строки.
z.- Перерисовывает файл с курсором в центре окна и сначала непустым символом вашей строки.
zt- Перерисовывает файл с курсором в верхней части окна.
zb- Перерисовывает файл с курсором внизу окна.
zz- Перерисовывает файл с курсором в центре окна.
источник