Ich weiß nicht, Sublime Text, aber Ihr Problem sollte generisch sein, dass es für jedes Programm gilt, die einen Dateinamen als Argument akzeptiert, weigert sich aber, von stdin zu lesen.
Zum Glück erlaubt Bash Ihnen, stdout aus einem Prozess in eine Art von temporären Datei pipe, dann übergeben Sie den Namen dieser Datei an einen anderen Prozess.
Von man bash
:
Prozess Substitution auf Systeme unterstützt, Named Pipes (FIFOs) oder/dev/fd Methode des Benennens offene Dateien. Es hat die Form < (Liste) oder> (Liste). Die Prozessliste wird mit ihrem Eingang oder Ausgang ausgeführt, der mit einem FIFO oder einer Datei in/dev/fd verbunden ist. Der Name dieser Datei wird als Argument an den aktuellen Befehl als Ergebnis der Erweiterung übergeben. Wenn das Formular> (Liste) verwendet wird, liefert das Schreiben in die Datei eine Eingabe für die Liste. Wenn das Formular < (Liste) verwendet wird, sollte die als Argument übergebene Datei gelesen werden, um die Ausgabe der Liste zu erhalten.
Unter der Annahme, SomeProcess erzeugt eine Ausgabe, die Sie in Ihrem Editor erfassen möchten:
sublimetext <(SomeProcess)
oder:
SomeProcess | sublimetext <(cat)
Wenn Sie denken, dass Sie dies von Hand ein in sein eingeben viel, dann können Sie sublimetext <(cat)
in ein Shell-Skript oder Alias setzen.
Gerade falls Ihr Betriebssystem nicht verarbeitet Substitution nicht unterstützt, dann können Sie immer eine temporäre Datei selbst natürlich angeben:
SomeProcess > /tmp/myoutput
sublimetext /tmp/myoutput
Ich habe versucht, diese auf dem Mac: echo "hey" | Erhabene - habe ich eine neue Datei ‚subl stdin ICgUXZ.txt‘ mit dem Inhalt namens ‚hey‘. Scheint für mich zu arbeiten. – Siddhartha
@Siddharta: Von http: // sublimentext.userecho.com/topic/87972-allow-editing-stdin-on-linux/: "Die 'subl' Kommandozeile unter OS X erlaubt das Editieren oder Anzeigen von stdin, aber der Kommandozeilenaufruf unter Linux scheint nur existierende Dateisystemdateien zu unterstützen. " –
Bitte klären und markieren Sie das Betriebssystem, an dem Sie arbeiten - klingt wie Linux. – mklement0