Weniger Hervorhebung von Befehlen und Syntax

43

Ich brauche das verwenden less commandmit der Syntax des Befehls vim - Markierung für python, C, bashund andere Sprachen.

Wie wende ich Syntaxhervorhebungsfarben entsprechend vimFarben für an less command?

Persischer Golf
quelle

Antworten:

35

Syntaxhervorhebung von lessfunktioniert auf den meisten * nix-Systemen einwandfrei.

apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Verwenden Sie /usr/bin/src-hilite-lesspipe.shstattdessen auf Fedora / RedHat basierende Distributionen .

Selbst auf Cygwin können Sie dies mit der geringfügigen Anpassung des Shell-Skriptpfads und der Installation mit apt-cyganstelle von tun apt.

Wenn Sie dies jedoch verwenden, wird das Durchsuchen großer Dateien drastisch verlangsamt. Ich schlage vor, so zu verwenden alias, dass der LESSOPENobige Export nur bei Bedarf implementiert wird :

alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '

wo die -MFlagge bequem ist, um auch Dateinamen und Zeilennummer anzuzeigen.

Denken Sie auch daran, das Skript in Ihren Bin-Pfad zu kopieren:

cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh

UPDATE: 2019-07-24

Anscheinend haben Sie bei neueren Cygwin-Installationen die folgenden Dateien in Ihrem Pfad:

source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe

So , jetzt müssen Sie auch die ausführen source-highlight-settings.exe, die die Konfigurationsdatei hinzufügen:
$HOME/.source-highlight/source-highlight.conf.

not2qubit
quelle
Der Alias ​​'lessh' funktioniert bei mir nicht. Bash auf osx ausführen. Seufzer.
Scott Biggs
Dies ist ein völlig anderes Problem, was höchstwahrscheinlich darauf zurückzuführen ist, dass OSX unterschiedliche Shell- und Umgebungsoptionen verwendet, die sich unterschiedlich auf die Interpretation von einfachen und doppelten Anführungszeichen auswirken können. Diese können Sie mit shopt -pund überprüfen und einstellen set.
not2qubit
1
Dies funktionierte für mich unter OSX: Zuerst installierte ich mit brew install source-highlightalias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
:,
40

less unterstützt keine Syntaxhervorhebung.

vimhat wie alle viKlone einen schreibgeschützten Modus, in viewdem Sie nur Dateien anzeigen können. Es unterstützt alle Funktionen von VIM, einschließlich Syntax-Hervorhebung.

z.B

view filename.py

Der Hauptunterschied zwischen viewund vibesteht darin, dass die Ansicht die angezeigte Datei nicht durch Erstellen einer SWP-Datei "sperrt".

cas
quelle
Wenn Ihre view commandMittel aus radare package, ist es nicht nur zum Lesen
PersianGulf
4
Hmm, mein viewBefehl scheint die Syntaxhervorhebung nicht zu unterstützen. Ich habe versucht :syntax enableund :syntax on, aber ich bekomme immer syntax: Not an editor command. Meine vimUnterstützungen markieren jedoch.
Felix
@felix - hast du einen anderen vilike nvioder elvisinstalliert? Überprüfen Sie Ihre /usr/bin/view- auf meinem Debian-System ist es ein Symlink, /etc/alternatives/viewder wiederum ein Symlink zu ist /usr/bin/vim.basic.
cas
1
Hmm, in meinem Fall ist es ein Symlink zu /usr/bin/ex, der seltsamerweise im Besitz des viPakets ist.
Felix
2
Ich kann bestätigen , was @Felix sagt, auf arch linux viewein Symlink ist /usr/bin/exvon core/viPaket.
X-Yuri
13

lessEs kann nicht gelehrt werden, Syntaxelemente hervorzuheben, aber Vim kann als Pager verwendet werden, dh als Ersatz für less. Es gibt fortgeschrittenere Plugins, aber das Basisskript wird tatsächlich mit Vim ( $VIMRUNTIME/macros/less.sh) ausgeliefert. Ausführliche Informationen finden Sie unter Verwenden von vim als Syntax-Highlighting-Pager im Vim Tips Wiki.

Ingo Karkat
quelle
2
Ich bin überrascht, dass sich die Leute nicht einmal um Google
kümmern,
1
@ user1147688: Wenn Sie Felix 'Antwort sorgfältig lesen, ist das GNU-Quell-Highlight ein externes Programm, und die Integration mit less ist sehr locker. Es ist nicht lessdas Hervorheben; aber Vim hat tatsächlich diese Fähigkeit eingebaut.
Ingo Karkat
Bei der Frage "Wie wende ich Syntaxhervorhebungsfarben für weniger Befehle gemäß VIM-Farben an?" Scheint die Antwort "Durch Verwenden von Quellhervorhebung" eine korrektere Antwort zu sein als "Durch Verwenden von VIM".
Zano,
1
+1 aber ich bin mir sicher, was diese Kommentare zu sagen versuchen - kann nicht sagen, ob sie sogar positiv oder negativ sind ("... google vor dem Posten falscher Antworten" ?, "xyz zu installieren ist richtiger als nur zu verwenden vim "?). Diese Antwort ist eindeutig die "richtigste Antwort". Grundsätzlich wusste das OP nicht, dass es diese Funktion von vim gibt, und diese Antwort lässt das OP wissen, dass es existiert. Occams Rasiermesser ftw. Die Antwort könnte nur durch ein Beispiel verbessert werden, z. B.$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael
11

Ich neige dazu, Ingo nicht zuzustimmen, less kann gelehrt werden, um die Syntax hervorzuheben. Schauen Sie sich diese Antwort auf SuperUser an. Grundsätzlich müssen Sie das Source-Highlight von GNU installieren (verfügbar in allen wichtigen Distributionspaketen) und dann Folgendes zu Ihrem .bashrc( .bash_profileoder dem, was Sie haben) hinzufügen :

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=" -R "

Beachten Sie jedoch, dass source-highlightes nicht so leistungsstark ist wie vimder Textmarker. Verwenden Sie, was am besten zu Ihnen passt.

Felix
quelle