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?


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

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).


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

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.