Kann Vim die Escape-Codes für die Terminalfarben interpretieren?


29

Viele CLI-Programme geben gut hervorgehobenen Text aus. Während die meisten von ihnen prüfen, ob die Ausgabe in eine Datei erfolgt, enthalten einige die Escape-Codes des Terminals. Ich mag die Ausgabe mit den Escape-Codes, aber das Anzeigen dieser Dateien in Vim ist schmerzhaft.

Kann Vim diese Escape-Codes in die erwarteten Farben interpretieren? Wenn nicht, kann Vim so eingestellt werden, dass diese Escape-Codes ignoriert werden?

Antworten:


28

Es gibt verschiedene Plugins, mit denen Sie ANSI-Farben über Escape-Codes anzeigen können:


Wenn Sie alle Escape-Codes entfernen möchten , können Sie Folgendes verwenden:

:%s/<1b>\[[0-9;]*m//g

Hinweis: Es <1b>handelt sich nicht um wörtlichen Text, sondern um das Escape-Zeichen. Verwenden Sie Ctrl+ vgefolgt von Esc, um es einzufügen ( ^[je nach displayEinstellung wird es möglicherweise auch als angezeigt ).

Oder Sie können sie mit entfernen sed; beispielsweise:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

Wenn Sie ein ausreichend modernes vim haben, das über die Terminalfunktion + verfügt, können Sie dies :term cat somefileund Sie erhalten einen Puffer mit allen interpretierten Terminalcodes.

Dies funktioniert möglicherweise besser bei großen Dateien als z. B. Colorizer, was mein Video ungewöhnlich langsam machte, wenn ich es in einer 6000-Zeilen-Datei losließ.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.