Я заметил, что vim может быть довольно интуитивно понятным, но у меня возникают проблемы с поиском способа повторения второй до последней команды (или третьей до последней, четвертой до последней и т. Д.). При вводе .
в обычном режиме он будет повторять последнюю команду. Нажатие 3.
повторит последнюю команду три раза.
Допустим, я набираю oHello<Esc>
тогда A, World!<Esc>
. Теперь я получаю
Hello, World!
на экране. Теперь скажи, что я хочу получить
Hello, World!
Hello
Hello
Hello
без ввода Hello. Сохраняет ли vim историю за пределами одной команды, чтобы я мог напечатать что-то вроде 3,2.
(то есть повторить команду от второй до последней три раза)?
qaoHello<esc>q
затем@a
повторить,Hello
когда захотите.) Также есть@@
возможность повторить последний использованный макрос.3@a
повторить макрос несколько разОтветы:
Нет,
.
команда вvim
не имеет истории, и нет никакой истории повторений для команд обычного режима, о которых я знаю. Для наименьшего числа нажатий клавиш, я бы порекомендовал4oHello<Esc>3jA, World<Esc>
. Если вы уже сделалиoHello<Esc>A, World<Esc>
, вы можете следовать за этим сuyy<Ctrl-r>3p
.источник
Есть этот плагин RepeatLast.vim, который делает то, что вы хотите, но с затратами: ваш vim всегда находится в режиме записи макроса. Вы можете установить его с помощью менеджера пакетов, который вы используете, как и любые другие пакеты vim, или вы можете просто клонировать и вставить его,
~/.vim/plugin
если вы используете vim или~/.config/nvim/plguin
neovim. Чтобы повторить второе до последнего действия, вы должны набрать2\.
в обычном режиме, а чтобы повторить th до последнего действия, вы должны набрать<n>\.
в обычном режиме.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
источник