Používám urxvt na Arch Linuxu. Mohu vybrat výstup pomocí myši pro kopírování / vkládání. Problém nastane, když výstup obsahuje tabelátory. Všechny tabelátory jsou vybrány a zkopírovány jako mezery. To opravdu ztěžuje zachování struktury některých výstupů při jejich kopírování.
Existuje nějaký způsob, jak toto chování opravit?
EDIT:Používám zsh, pokud to má nějaký vliv na problém.
Přijatá odpověď:
Nevím o žádném terminálu, který to dělá, a řeknu jen, proč si nemyslím, že žádný terminál ano:
tab
je jedním z mnoha znaků, které se po zobrazení zobrazí více než jeden znak na obrazovce nebo posouvají kurzor. CR (přesunout na začátek řádku), LF (dolů), backspace (vlevo) a všechny escape sekvence, které posouvají kurzor nebo mění atributy znaků a/nebo nic nezobrazují…
urxvt ani nedostane přesně to, co aplikace produkuje. Když aplikace odešle LF (\n) na podřízenou stranu pseudoterminálu, všimnete si, že většinou neposune pouze kurzor dolů, jak to normálně dělá LF, ale také jej přesune zpět. na začátek řady. Je to proto, že ovladač pty přeloží „\n“ na „\r\n“, než je zpřístupní pro čtení z master straně terminálu pomocí urxvt (pro změnu tohoto chování můžete použít stty).
Také si uvědomte, že výběr nezachytí koncové mezery.
Výběr X vybírá znaky, které jsou zobrazeny, nikoli ty, které byly odeslány aplikací (aplikacemi) k vygenerování tohoto zobrazení (vezměte v úvahu, že jakýkoli znak na jakékoli dané pozici na obrazovce mohl být několikrát přepsán jednou nebo více aplikacemi (s)).
Některé terminály však umožňují zachytit všechny znaky, které přijmou na hlavní straně pseudoterminálu, a pokud tomu tak není, můžete k tomu místo toho použít „skript“ nebo „obrazovku“. Chcete-li však dostat výstup aplikace do výběru X, můžete také jednoduše:
the-command | xsel