vim & Farben aus ANSI-Escape-Sequenzen: So zeigen Sie in vim dieselben Farben an, die mit dem Befehl cat angezeigt werden

8

Folgendes mache ich: Ich hallte durch PHP-Farben wie folgt:

Schalenfarben

PHP erstellt eine Ausgabe mit ANSI-Escape-Sequenzen, die Text färben, wenn er über die Shell auf meinem Terminal angezeigt wird. Die PHP-Klasse und die Erklärung finden Sie hier .

Aber wenn ich meine Ausgabe an eine Datei sende und versuche, sie mit vim zu lesen, ist sie nicht "farbig", ich kann nur die Sonderzeichen sehen. Gibt es eine Möglichkeit, die Farben so anzuzeigen, wie sie in der Shell angezeigt werden?

Olivier Pons
quelle
Es kann hilfreich sein, wenn Sie angeben, wie und mit welchem ​​Programm Sie die Datei mit dem farbigen Text erstellen und wie Sie später versuchen, sie anzuzeigen.
John S Gruber
Entschuldigung, wenn ich nicht präzise genug war. Zitiere meine Frage: Ich hallte durch Php . Dh " php -f filename" und ich spreche mit dieser Klasse hier: if-not-true-then-false.com/2010/…
Olivier Pons
Mögliches Cross-Site-Duplikat von: superuser.com/questions/358409/…
Ciro Santilli 法轮功 病毒 审查 六四 事件 23

Antworten:

8

Die Terminalausgabe wird farbig angezeigt, wenn der Inhalt der Datei "wie besehen" ohne Änderungen an das Terminal gesendet wird. Vim und einige andere Editoren entziehen sich jedoch Metazeichen im Text und fügen stattdessen möglicherweise andere Farbcodes für ihre Syntaxhervorhebung hinzu, sodass dies nicht funktioniert.

Versuchen Sie, die Datei mit auf das Terminal zu sichern cat. Dies sollte funktionieren. Einige einfache Editoren oder Pager wie lesskönnten auch funktionieren.

Bearbeiten: Ich habe keine Möglichkeit gefunden, vim alle Escape-Codes "durchlassen" zu lassen, aber ich habe diese Antwort gefunden , die auf dieses vim-Skript verweist , das die Escape-Codes analysiert und die Hervorhebung der vim-Syntax verwendet, um die Farbcodes neu zu erstellen in der Ausgabe. Laut seiner Beschreibung sollte es genau das tun, was Sie wollen (aber ich habe es nicht getestet).

Philipp Wendler
quelle
Gibt es eine Möglichkeit, dies mit vim zu tun (= genau, um nicht zu entkommen)?
Olivier Pons
@OlivierPons siehe meine Bearbeitung
Philipp Wendler
Es hat nicht mit weniger funktioniert, aber mit mehr: cat ~ / myfile.txt | mehr
Wranvaud
Das Skript funktioniert. Es ist ein Vimball. Um ihn zu installieren, können Sie ihn irgendwo mit einem Gunzip versehen und dann in vim ': source ansi.vba'. Es werden viele Escape-Vorgänge ausgeführt, jedoch nicht alle. Eine andere Lösung ist "weniger -R-Dateiname".
Matiu
0

Ich habe gerade festgestellt, dass es ein Vim-Plugin gibt, das sich mit ASCI-Escape-Zeichen befasst. Es heißt "Ansi Highlighting". Wenn Sie interessiert sind, besuchen Sie bitte http://www.drchip.org/astronaut/vim/index.html#ANSIESC

Oh, Sie müssen 'Vimballs' verwenden, um ANSIESC auszupacken.

Wawrzek
quelle