Как я могу перенаправить вывод из stdout в vim?

605
Human

Я хотел бы просмотреть вывод echoв vim, и сохранить в файл после просмотра этого. Я пытался echo $PATH | vim, но я получаю следующую ошибку:

Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting...  Vim: Finished. 

Что я могу сделать?

3
https://askubuntu.com/questions/510890/how-do-i-redirect-command-output-to-vim-in-bash bertieb 5 лет назад 0

2 ответа на вопрос

4
Ingo Karkat

Вам не хватает -аргумента имени файла, который указывает Vim заполнить буфер из stdin; ср.:help --

echo $PATH | vim - 

Кроме того, вы можете использовать подстановку процессов вашей оболочки для создания временного файлового дескриптора и заставить Vim редактировать этот «виртуальный» файл.

vim <(echo $PATH) 
Если вы используете Vim как пейджер вместо less / more, попробуйте `| vim -R -` чтобы отключить «Сохранить изменения?» подскажите когда вы выйдете. John Kugelman 5 лет назад 0
2
DavidPostill

Как я могу перенаправить вывод из стаута в vim?

На ваш вопрос ответили в AskUbuntu.

Самое простое решение - добавить -к вашей команде:

echo $PATH | vim - 

Вы можете использовать процесс подстановки (это также работает с приложениями, которые не могут читать из STDIN):

vim <(ls -la) 

Или используйте vimфункцию для чтения из STDIN:

ls -la | vim - 

Source Как мне перенаправить вывод команды в vim в bash? , ответ хаосом