Ich verwende urxvt unter Arch Linux. Ich kann die Ausgabe mit der Maus zum Kopieren / Einfügen auswählen. Das Problem tritt auf, wenn die Ausgabe Tabulatoren enthält. Alle Tabulatoren werden ausgewählt und als Leerzeichen kopiert. Das macht es wirklich schwierig, die Struktur einiger Ausgaben beim Kopieren beizubehalten.
Gibt es eine Möglichkeit, dieses Verhalten zu beheben?
BEARBEITEN:Ich verwende zsh, wenn dies Auswirkungen auf das Problem hat.
Akzeptierte Antwort:
Ich kenne kein Terminal, das dies tut, und ich werde nur sagen, warum ich glaube, dass kein Terminal dies tut:
tab
ist eines der vielen Zeichen, das einmal angezeigt mehr als ein Zeichen auf dem Bildschirm ausgibt oder den Cursor bewegt. CR (zum Zeilenanfang bewegen), LF (runter), Backspace (links) und alle Escape-Sequenzen, die den Cursor bewegen oder Zeichenattribute ändern und/oder nichts anzeigen…
urxvt bekommt nicht einmal genau das, was die Anwendung ausgibt. Wenn eine Anwendung ein LF (\n) an die Slave-Seite des Pseudo-Terminals sendet, werden Sie feststellen, dass sie den Cursor die meiste Zeit nicht nur nach unten bewegt, wie es LF normalerweise tut, sondern auch zurück zum Zeilenanfang. Das liegt daran, dass der pty-Treiber das „\n“ in „\r\n“ übersetzt, bevor er es zum Lesen vom Master zur Verfügung stellt Seite des Terminals durch urxvt (Sie können stty verwenden, um dieses Verhalten zu ändern).
Beachten Sie auch, dass die Auswahl keine nachgestellten Leerzeichen erfasst.
Die X-Auswahl wählt die angezeigten Zeichen aus, nicht die, die von der/den Anwendung(en) gesendet wurden, um diese Anzeige zu erzeugen (beachten Sie, dass jedes Zeichen an einer bestimmten Position auf dem Bildschirm möglicherweise mehrmals von einer oder mehreren Anwendungen überschrieben wurde (s)).
Einige Terminals erlauben es jedoch, alle Zeichen zu erfassen, die sie auf der Master-Seite des Pseudo-Terminals empfangen, und wenn dies nicht der Fall ist, können Sie stattdessen „script“ oder „screen“ verwenden. Aber um die Ausgabe einer Anwendung in die X-Auswahl zu bekommen, können Sie auch einfach Folgendes tun:
the-command | xsel