Как вывести вывод внешней команды в новый буфер в Vim? - PullRequest
7 голосов
/ 30 сентября 2010

:enew позволяет мне создать новый буфер, а :.!<code><command> позволяет мне выводить выходные данные внешней команды в этот буфер.Могу ли я объединить два в один лайнер?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 30 сентября 2010

'|' используется для объединения команд в vim. так

:enew | .! <command>

должен делать то, что вы хотите

2 голосов
/ 08 октября 2010

:.! фактически передает текущую строку через внешнюю команду, возможно, теряя строку. Вы можете использовать :r !<command> - обратите внимание на пробел перед !. Я часто использую :0r !cmd, чтобы вывод вставлялся в начало буфера.

0 голосов
/ 15 октября 2018

:vnew | read !<command>

Выполните команду и поместите вывод в новый вертикально разделенный буфер. Используйте #, чтобы передать путь текущего буфера в команду. например,

:vnew | read !python -m json.tool #

Использование модуля JSON в Python для форматирования рабочего файла JSON.

В качестве альтернативы плагин AsyncCommand можно использовать для асинхронного запуска любой программы и загрузки результатов в разделенный буфер.

Дополнительное чтение:

  • :h new
  • :h read
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...