Я хочу запустить макрос, который я только что записал в регистре " x
", на каждой отдельной строке открытого буфера, от курсора до конца буфера в vim. Как я могу это сделать?
Я знаю, что могу воспроизвести макрос n раз:
15@x
... или просто удерживайте, @
пока не дойду до последней строки, но я хочу просто нажать несколько клавиш и покончить с этим.
Заранее спасибо.
Ответы:
Лично я бы сделал
Изменить: изменил регистр на тот, который вы указали.
источник
Вы можете сделать (в командном режиме)
источник
сделать рекурсивный макрос:
пример:
Это будет UPCASE первое слово от текущей строки до конца файла с одним @a. Но убедитесь, что «регистр пуст:
источник
%:normal
подход, поскольку он учитывает любые перемещения строк в макросе, поэтому полезен там, где строки не идентичны по форме. Мне проще создать макрос «a» для определения действия, а затем сделать так, чтобы макрос «b» выполнял рекурсивный бит, то есть qb @ a @ bq.ctrl-c
остановиться, если это произойдет!:set nowrapscan
приводит к сбою и остановке при достижении конца файла.qaq
до макро:qaqqa0gUwj@aq
. Кроме того, если вы забыли поставить@q
в конце, вы всегдаqA
можете начать добавлять регистр, а затем сделать@q
. Я обычно записываю в reg q по какой-то причине, потому что это просто (особенно для рекурсивных макросов) и обычно заканчиваетсяqqqqqgUiwj@qq
вместо двух макросов. Первые триq
s clear reg q, вторые дваq
s начинают запись. См. Vim.wikia.com/wiki/Record_a_recursive_macroa
регистр можно было простоqaq
999999@x
, если у вас нет очень большого буфера ...источник
%:normal @x
или1,$:normal @x
?99999@x
это просто естественная вещь, которую вы придумаете, когда торопитесь :)Из vim wiki сокращенная версия: qqqqq для записи макроса @qq для завершения записи @q для его выполнения (и будет выполняться до конца файла)
источник