Как подключить вывод программы в редакторе?

У меня есть моя программа, генерирующая некоторые данные. Он выводит все на стандартную ошибку.

Теперь я хотел бы перенаправить вывод на новый текстовый редактор в главное окно без имени, которое отображается при запуске. Я пробовал с vim и gedit без успеха.

myprogram | gedit
myprogram | gvim

Кто-нибудь знает о текстовом редакторе X11, который бы поддерживал это?

Ответ 1

Если вы хотите перенаправить stderr вашей программы на gvim, вы можете сделать:

myprogram 2>&1 | gvim -

и если вы хотите перенаправить stdout в редактор, вы можете сделать:

myprogram| gvim -

Ответ 2

Я пробовал это в Ubuntu 12.04, он работает как хотелось бы:

sudo lshw | gedit &

На Ubuntu 14.04

sudo lshw | gedit - &

Dimitry K добавил 22 '16 в 19:00 следующее

Я думаю, что вам все еще нужно тире после:

gedit sudo lshw | gedit - & 

(пробовал ubuntu 14.04 и только с dash работает) -

Ответ 3

Чтобы сделать это все в одной строке с любым редактором, создайте временный файл, откройте его с помощью gedit, а затем удалите его, как только gedit откроет его:

echo hello > temp ; gedit temp ; sleep 1 && rm temp &

Следующие работы с таким редактором, как vim, но gedit, geany или emacs, похоже, не могут открыть стандартные входные или временные файлы, созданные с помощью <()

vi <( echo hello )

echo hello | vi -

Ответ 4

Я не знаю ни одного редактора, который поддерживает это, но перенаправление к временному файлу может быть проще.

F=$(mktemp)
myprogram >$F
gedit $F
rm $F

Ответ 5

history | kate -i

мой любимый редактор: -)

Как уже говорилось, когда программа не поддерживает такой канал, лучшим способом является использование временного файла в каталоге /tmp/, который обычно удаляется при следующей загрузке.

history > /tmp/bflmpsvz;mcedit /tmp/bflmpsvz