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?

Beatgammit
quelle

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 -
Martin Tournoij
quelle
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ß.

Marius Gedminas
quelle