.png)
В Vim, как, вероятно, все вы знаете, можно задать количество команд в «обычном режиме», указав перед ними число.
Например 4dd
, это приведет к удалению 4 строк.
Мне интересно, есть ли способ передать счетчик в команду командной строки vim (команду, начинающуюся с двоеточия), чтобы повторить ее несколько раз.
Что-то вроде 2:normal oHi!
повторения normal oHi!
команды 2 раза.
Есть ли способ сделать что-то подобное в Vim?
решение1
Многие :-команды принимают количество в качестве аргумента. Например:
:delete 4
Удалить четыре строки, начиная со строки, на которой находится курсор.
Некоторые :-команды вместо этого принимают счетчик перед именем команды:
:2next
Отредактировал бы второй следующий файл в списке аргументов.
Однако :normal
команда не принимает счетчик ни в одной из форм. Вам придется обернуть его в цикл:
for i in range(1,2)
normal oHi!
endfor
И, конечно, вы можете создать пользовательскую команду, которая будет делать то, что вам нужно:
command -count=1 -nargs=+ Normal for i in range(1,<count>) | exe 'normal ' . <q-args> | endfor
Устанавливает -count=1
счетчик по умолчанию на 1, и вызывается вторым способом:
:2Normal oHi!