Comment diriger la sortie du programme dans un éditeur?

J’ai mon programme générant des données. Il produit tout sur l’erreur standard.

Maintenant, je voudrais redirect la sortie vers un éditeur de texte nouvellement démarré, dans la fenêtre d’édition principale non nommée qui s’affiche au démarrage. J’ai essayé avec vim et gedit sans succès.

myprogram | gedit myprogram | gvim 

Quelqu’un sait à propos d’un éditeur de texte X11 qui prendrait en charge cela?

Si vous voulez redirect stderr de votre programme vers gvim vous pouvez faire:

 myprogram 2>&1 | gvim - 

et si vous souhaitez redirect la stdout vers l’éditeur, vous pouvez le faire:

 myprogram| gvim - 

J’ai essayé ceci dans Ubuntu 12.04, cela fonctionne comme désiré:

 sudo lshw | gedit & 

Sur Ubuntu 14.04

 sudo lshw | gedit - & 

Pour faire cela en une seule ligne avec n’importe quel éditeur, créez un fichier temporaire, ouvrez-le avec gedit, puis supprimez-le une fois ouvert par gedit:

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

Ce qui suit fonctionne avec un éditeur tel que vim, mais gedit, geany ou emacs semblent être incapables d’ouvrir les fichiers d’entrée ou les fichiers temporaires tels que créés par <()

vi <( echo hello )

echo hello | vi -

Je ne connais aucun éditeur qui le supporte, mais la redirection vers un fichier temporaire pourrait être plus facile.

 F=$(mktemp) myprogram >$F gedit $F rm $F 
 history | kate -i 

mon éditeur préféré 🙂

Comme déjà dit, lorsqu’un programme ne supporte pas ce type de diffusion, le meilleur moyen est d’utiliser un fichier temporel dans le répertoire / tmp / qui est généralement supprimé au prochain démarrage.

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