Я знаю о :bufdo
команда, и пыталась объединить его с макросом, который я записал (@a
) для добавления #include в надлежащем месте каждого из заголовочных файлов, я загрузился. Однако я не мог найти простой способ выполнить макрос на каждом буфере. Есть ли способ выполнить макрос через исключая режимом, который является что :bufdo
требует? Или есть ли другая команда, которую я пропускаю?
Вы можете сделать это так:
:bufdo execute "normal @a" | write
Обычная команда запустит макрос, но он должен быть запущен с помощью :execute, иначе символ трубы будет интерпретирован как символ обычного режима.
Единственная альтернатива, которую я смог придумать, это добавить команды :w
и :bn
в макрос, чтобы он автоматически сохранял и переходил к следующему буферу. Затем я мог выполнить команду на остальных 52 буферах, набрав 52@a
. Это работало, но для меня это совсем другая концептуальная модель, чем :bufdo
, и я надеюсь, что кто-нибудь еще укажет мне на что-то более похожее на :bufdo
.
Вы должны использовать обычный
для выполнения команд нормального режима , такое выполнение макроса ( @a
) в командном режиме :
:bufdo normal @a