Я знаю, что могу использовать, .
чтобы повторить последнюю команду редактирования.
Есть ли способ повторить последнюю команду манипуляции с пользовательским интерфейсом? Например, я могу написать, 10<C-W>-
чтобы уменьшить окно на десять строк. Было бы неплохо иметь возможность нажать « некоторую клавишу», чтобы легко повторить эту команду, если я захочу уменьшить ее.
repeated-commands
wchargin
источник
источник
fz
а затем10;
? Как насчет:tabm +1
? Это все должно быть в специальном корпусе?Ответы:
Команда dot
.
работает, потому что Vim «отслеживает» команды, которые изменяют содержимое буферов. Если вы запустите:echo b:changedtick
, вы увидите, что он увеличивается с каждым изменением текущего буфера.Но Vim не «отслеживает» нередактирующие команды. Таким образом, нет, то, что вы просите, не может быть сделано.
источник
В vim нет способа сделать это по умолчанию, потому что vim не отслеживает ранее выполненный wincmd. Тем не менее, это можно сделать с помощью некоторых умных сопоставлений:
Обратите внимание, что если у вас есть какие-либо сопоставления, которые используют,
<C-w>
они могут повторяться, только если они не относятся кnore
разнообразию. Любые wincmds, выпущенные с использованием:wincmd
, повторяться не будут. Кроме того, любые wincmds, содержащие более одного символа, не могут быть выполнены (например,<C-w>gf
) .Соответствующие разделы справки
:help v:count
:help getchar()
:help nr2char()
:help expr1
:help :wincmd
:help :execute
:help :for
:help :map-<silent>
:help c_CTRL-U
:help <SID>
источник
.
при подсчете. Когда счетчик предоставляется.
, предыдущий счет игнорируется. Таким образом ,2dd
после чего3.
удалили бы 2 строки , а затем 3 линии; напротив, с вашими сопоставлениями,2<C-w>-
после чего3Q
уменьшится окно на 2 строки, а затем на 6 (= 2x3) строк. Такое поведение хорошо, но приятно использовать аналогичные встроенные команды Vim при выборе поведения собственной команды.Подрежим плагин может помочь с этим. Вы можете определить «подрежим», который вы вводите, набрав
<C-W>-
, в котором вы определили-
(и, возможно,+
), чтобы продолжить изменение размера окна.источник
Есть еще один плагин, который называется repmo.vim («повторить движения»), который может делать то, что вы хотите.
Но вам нужно будет указать, какие движения (или действия в целом) вы хотите повторить. Мой в настоящее время настроен так:
Так что после этого 5 CTRL-W +я могу нажать, ;чтобы повторить это столько раз, сколько нравится.
Плагин работает, создавая сопоставления для каждого из указанных ключей.
Когда
f
илиt
используются, то;
и,
отображения сбрасываются обратно на их поведение по умолчанию.Я считаю, что отображение
g;
особенно полезно, чтобы вернуться к более ранней точке редактирования. g; ; ; ;источник
,
действия немедленно, а5,
также работает, как ожидалось. Возможно ли вы установитьmapleader
To,
?