Как подсчитать количество команд в командной строке Vim (например: insert,: normal и т. Д.)

3

В Vim, как, наверное, все вы знаете, можно дать счет командам в «нормальном режиме», поставив перед ними число.

Как например 4dd это удалит 4 строки.

Мне интересно, есть ли способ передать счет в команду командной строки vim (команду, начинающуюся с двоеточия), чтобы повторить это несколько раз.

Что-то вроде 2:normal oHi! повторить normal oHi! Команда 2 раза.

Есть ли способ сделать что-то подобное в Vim?

wefwefa3
источник

Ответы:

3

Многие: -команды принимают количество в качестве аргумента. Например:

: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!
Heptite
источник