Viele programmorientierte Editoren werden den Quellcode einfärben. Gibt es einen Befehl, der den Quellcode für die Anzeige im Terminal einfärbt?
Ich konnte eine Datei öffnen mit emacs -nw
(die statt im Terminal öffnet knallt ein neues Fenster), aber ich bin auf der Suche nach etwas , das funktioniert wie less
(oder das funktioniert mit less -R
, die durch in seinem Eingang Escape - Sequenzen Farbe geht).
quelle
Ich benutze dazu GNU in
source-highlight
Kombination mitless -R
. Fügen Sie der Initialisierungsdatei Ihrer Shell~/.bashrc
beispielsweise die folgenden Zeilen hinzu :Das sollte automatisch den Quellcode entsprechend der verwendeten Sprache einfärben und, falls dies nicht möglich ist, wird es
less
bei der Eingabe direkt gestartet .quelle
Wenn Sie sich
less
allgemein für Farben interessieren , sollten Sie sich diese ansehenlesspipe.sh
. Siehe zum Beispiel http://freecode.com/projects/lesspipe .Es koloriert auch Shell-Skripte, Perl-Skripte usw. ähnlich einem Texteditor, jedoch ohne die Verwendung eines "Vorverarbeitungs" -Programms, um die Kolorierung durchzuführen.
quelle
lesspipe.sh
ich habe versucht, mich zu erinnern, bevor ich die Frage gestellt habe ...Ich mag die Einfachheit und benutze den Nano-Texteditor. In diesem Fall gehe ich normalerweise wie folgt vor:
check witch syntax highlight ist verfügbar:
ls -la /usr/share/nano/
füge es mit folgendem Befehl oder manuell in meine nanorc-Datei ein
über
less
Ich schlage vor , einen Blick auf geben dieser Seitequelle
Entsprechend dem Vorschlag von Stéphane Chazelas
highlight
erstelle ich eine Bash-Funktion, um show Syntax highlight zu verwenden und in .bashrc oder so weiter zu schreiben. Es funktioniert großartig, schnell und effektiv.Hervorheben des Syntaxformats für die Unterstützung von 202 Sprachen . sehen
highlight --list-scripts=langs
.quelle
Sie können das Paket e2ansi verwenden , das Unterstützung für Syntaxhervorhebungen für Pager wie
more
und bietetless
.Das Paket verwendet die Mutter aller Texteditoren, Emacs , um die eigentliche Syntaxhervorhebung durchzuführen. Als zusätzlichen Bonus werden auch alle anderen Konvertierungen durchgeführt, die normalerweise von Emacs ausgeführt werden - wie das Dekomprimieren von Dateien.
Beispiel
Das Folgende ist das Ergebnis des Anzeigens einer Datei mit
less
unde2ansi
:Aufbau
Das Paket enthält ein Befehlszeilentool
e2ansi-cat
, mit dem Emacs im Batch-Modus gestartet, Dateien geöffnet, syntaktisch hervorgehoben und das Ergebnis mithilfe von ANSI-Sequenzen gerendert werden kann.Sie können dies integrieren,
less
indem Sie beispielsweise die folgenden Variablen auf setzen (der Speicherort Ihrer Init-Datei kann variieren):In der obigen Konfiguration wird
less
der ursprüngliche Inhalt des Terminalfensters wiederhergestellt, währendmore
nach der Eingabeaufforderung einfach neuer Inhalt ausgegeben wird.Hinweis: Wenn Sie eine alte Version von verwenden
less
, unterstützt diese möglicherweise weder||
die-
Syntax noch die Syntax. In diesem Fall müssen Sie sie möglicherweise einfach verwendenLESSOPEN=|/usr/local/emacs ...
.Verwendung
less
in RohrenDas Zeichen "-" in
LESSOPEN
gibt an, dass der Eingabefilter auch beim Einfügen von Text verwendet werden sollless
. In diesem Fall kann sich Emacs nur auf Text selbst (und nicht auf einen Dateinamen) verlassen. Glücklicherweise bietet Emacs hierfür ein System an. Darüber hinaus werden durch die bereitgestellte Dateidateie2ansi-magic.el
zusätzliche Dateitypen eingerichtet. Zum Beispiel:Warum Emacs benutzen?
e2ansi
bleiben die Farben im Design erhalten, wenn eine Datei in angezeigt wirdless
. Sie können ein geeignetes Farbthema aus einer Reihe von Quellen auswählen oder Ihr eigenes entwerfen.less
(abzüglich der Einschränkungen im ANSI-Sequenzformat und im Terminalfenster).less
wird die Emacs-Funktionen nutzen, die eine automatische Konvertierung durchführen, zum Beispiel das Dekomprimieren von Dateien. Tatsächlich können Sie Emacs beibringen, jede Art von Konvertierung durchzuführen, beispielsweise die automatische Konvertierung einer Binärdatei in eine für Menschen lesbare Form mithilfe eines externen Tools./USER@HOST:FILENAME
.Nützliche Links
e2ansi
wird auf Melpa verteilt und kann mit dem Standard-Emacs-Paketsystem installiert werdene2ansi
wird auf GitHub gehostete2ansi
Seite im Emacs Wikiless
.Hinweise zum Betriebssystem
Unter MS Windows unterstützt die Konsole keine ANSI-Sequenzen. Glücklicherweise kann die
less
Anwendung sie rendern. Mir ist keine aktuelle Binärdistribution vonless
für MS Windows bekannt, und die bereitgestellten Build-Dateien sind schwer zu verwenden. Glücklicherweise ist das Erstellenless
mit CMake einfach. Weitere Informationen finden Sie in diesem Text .OS X vertreibt eine alte Version von
less
. Glücklicherweise ist es einfach, eine moderne Version direkt aus dem Quellcode zu erstellen.quelle
Dies wird als Syntaxhervorhebung bezeichnet.
GNU Source-Highlight erzeugt bei Angabe einer Quelldatei ein Dokument mit Syntaxhervorhebung.
Ich verwende das folgende
lessfilter
Skript, oder Sie könnenless
es automatisch aufrufen lassen, wie mit:Ich habe diesen Artikel gefunden und so angefangen:
(
src-hilite-lesspipe.sh
wird mitgeliefert, istsource-highlight
aber nicht in allen Distributionen enthalten)quelle
export
eine Umgebungsvariable definiert wird, kein Alias. Der Befehlless
verwendet Flags aus der UmgebungsvariablenLESS
, sodass Ihre Antwort einige Arbeit erfordert.