Ответ 1
Если вы хотите перенаправить stderr
вашей программы на gvim
, вы можете сделать:
myprogram 2>&1 | gvim -
и если вы хотите перенаправить stdout
в редактор, вы можете сделать:
myprogram| gvim -
У меня есть моя программа, генерирующая некоторые данные. Он выводит все на стандартную ошибку.
Теперь я хотел бы перенаправить вывод на новый текстовый редактор в главное окно без имени, которое отображается при запуске. Я пробовал с vim и gedit без успеха.
myprogram | gedit
myprogram | gvim
Кто-нибудь знает о текстовом редакторе X11, который бы поддерживал это?
Если вы хотите перенаправить stderr
вашей программы на gvim
, вы можете сделать:
myprogram 2>&1 | gvim -
и если вы хотите перенаправить stdout
в редактор, вы можете сделать:
myprogram| gvim -
Я пробовал это в 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 работает) -
Чтобы сделать это все в одной строке с любым редактором, создайте временный файл, откройте его с помощью gedit, а затем удалите его, как только gedit откроет его:
echo hello > temp ; gedit temp ; sleep 1 && rm temp &
Следующие работы с таким редактором, как vim, но gedit, geany или emacs, похоже, не могут открыть стандартные входные или временные файлы, созданные с помощью <()
vi <( echo hello )
echo hello | vi -
Я не знаю ни одного редактора, который поддерживает это, но перенаправление к временному файлу может быть проще.
F=$(mktemp)
myprogram >$F
gedit $F
rm $F
history | kate -i
мой любимый редактор: -)
Как уже говорилось, когда программа не поддерживает такой канал, лучшим способом является использование временного файла в каталоге /tmp/, который обычно удаляется при следующей загрузке.
history > /tmp/bflmpsvz;mcedit /tmp/bflmpsvz