In einer Tmux-Sitzung versuche ich herauszufinden, ob es eine schnelle Möglichkeit gibt, einige Ausgaben von einem Bereich an den parallelen Bereich zu senden.
Wenn ich mich beispielsweise im linken Bereich (sagen wir 0,0) befinde und die Ausgabe des pwd
Befehls an den rechten Bereich (sagen wir 0,1) senden möchte, gibt es dafür eine schnelle Möglichkeit?
Ich entschuldige mich im Voraus, wenn es hier eine Antwort gibt, aber ich habe viel zu lange gegoogelt und nichts anderes gefunden als tmux send-keys -t right 'some text'
…
Stattdessen möchte ich die Ausgabe im angrenzenden Bereich anzeigen. Gibt es eine Möglichkeit, dies zu tun?
Antwort1
Ich möchte die Ausgabe im angrenzenden Bereich anzeigen
Wenn Sie den Dateinamen des Terminals kennen, das mit dem anderen Fenster verbunden ist (was tty
gedruckt wird), können Sie dort schreiben. Beispiel:
pwd >/dev/pts/1
Aber das nurzeigtZeichen dort; es gibt keine Interaktion mit dem Programm, das im Fenster ausgeführt wird. Sie haben das Wort „Anzeige“ verwendet, aber ich bin nicht sicher, ob Sie das wollen. Die Lösung funktioniert auch ohne tmux.
Wenn Sie die Ausgabe eines Befehls, den Sie in einem anderen Bereich aufrufen möchten, an die Standardeingabe senden möchten, verwenden Sie eine benannte Pipe:
mkfifo foo
pwd >foo
Gehen Sie nun zu einer anderen Shell (einem anderen Bereich) und lesen Sie von foo
:
<foo whatever
Dies ist auch nicht von tmux abhängig.
Wenn Sie die Ausgabe in einen anderen Bereich einfügen möchten (z. B. um sie dort zu einem Fragment eines neuen Befehls in einer Shell zu machen):
- Rufen Sie es
pwd
normal im Quellbereich auf. - Wechseln Sie in den Kopiermodus und kopieren Sie die Ausgabe. Bei Mausunterstützung genügt es, die linke Maustaste gedrückt zu halten und zu ziehen. Nach dem Loslassen der Taste wird der ausgewählte Text automatisch in einem Zwischenspeicher gespeichert.
- Zum Zielbereich.
- Fügen Sie den gespeicherten Text mit
paste-buffer
( prefix]standardmäßig) ein.