14

Если я нахожусь в Vim и хочу получить какой-либо вывод из командной строки и добавить его в мой текущий файл, я могу запустить это:

:! echo "foo" >> %

Это добавит "foo" к моему текущему файлу, и мне придется перезагрузить.

Есть ли более элегантный способ сделать это - поместить этот вывод в буфер, который я могу вставить, например?

1 ответ1

24

Да:

:r !echo "foo"

Увидеть

:help :r!

Это вставит вывод команды после текущей строки. Если вы хотите записать вывод команды в регистр, который вы можете вставить, вы можете сделать это:

:let @a = system('echo "foo"')

Теперь выходные данные команды (включая завершающий символ новой строки) находятся в регистре a . Увидеть

:help let-@
:help system()

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .