Frage Wie aktiviere ich die Syntax-Hervorhebung in Nano?


Kann nano Syntax-Highlighting wie gedit und vim machen? Wie kann ich es aktivieren? Ich brauche mindestens Bash und Python Syntax Highlights.


149
2017-12-23 15:20


Ursprung


Vielen Dank für die Syntax-Dateien in der Git-Repo, ich benutze dies jetzt auf allen meinen Servern ... weiter so die gute Arbeit matey !!!
@TheGene Kommentar und danke auf die Antwort. Das Repo wird ihm gutgeschrieben, nicht ich, derjenige, der die Frage stellt. - Oxwivi


Antworten:


Der Nano-Editor bietet Syntax-Highlighting für einige Sprachen und Skripte. Auschecken /usr/share/nano/

nits@nits-excalibur:~$ ls /usr/share/nano/
asm.nanorc     fortran.nanorc   man.nanorc     ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    mgp.nanorc     patch.nanorc   sh.nanorc
c.nanorc       groff.nanorc     mutt.nanorc    perl.nanorc    tcl.nanorc
cmake.nanorc   html.nanorc      nano-menu.xpm  php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Verknüpfen Sie sie mit der Nano-Konfigurationsdatei Ihres Benutzers, die Sie unter finden können ~/.nanorc mit etwas ähnlich zu dieser Linie:

nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

Nun ist die Syntax-Hervorhebung in nano für die von Ihnen verknüpfte Datei aktiviert (Sie können auch mehrere Dateien verknüpfen).

screenshot of syntax highlighting

Hinweis: Manchmal erhalten Sie möglicherweise eine segmentation fault nachdem du deine bearbeitet hast ~/.nanorc Datei. Tritt ein solcher Fehler auf, wird die Scharfschaltung aufgehoben LANG Umgebungsvariable hilft. Sie können es mit deaktivieren unset LANG im Terminal. (Lösung erhalten von Hier)

Es gibt auch andere Lösungen, wenn Sie mit Ihrer Bash-Hervorhebung nicht zufrieden sind. Ein Beispiel dafür kann gefunden werden Hier

Sie können auch schreiben include /usr/share/nano/* in die ~ / .nanorc-Datei, um alle Sprachen zu markieren, wenn Ihre Nano-Version dies unterstützt.


148
2017-12-23 16:07



Diese Zeilen sind unkommentiert /etc/nanorc - werden die globalen Einstellungen überschrieben von ~/.nanorc? Wie deaktiviere ich? .nanorc? - Oxwivi
Oh warte, ich habe nicht einmal eine ~/.nanorc Datei. - Oxwivi
Warte, warte, wie kommt die globale Einstellung mit all den include Zeilen, die keine Syntax-Hervorhebungen ermöglichen, obwohl ich dies nicht getan habe .nanorc? - Oxwivi
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc füge sie alle an deine .nanorc-Datei an oder erstelle sie, wenn sie nicht existiert. - Thom Porter
include /usr/share/nano/* funktioniert nicht - Jarek Jakubowski


Ja, Sie können, aber die Standard-Syntax-Definitionen sind ziemlich schlecht und unvollständig. Ich führe einen genaueren Satz von Definitionen Hier, für jeden, der sie nützlich findet.

Führen Sie Folgendes aus, um zu installieren:

git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install

Fügen Sie diese Zeilen zu ~ / .nanorc hinzu

include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc

Geben Sie die Farben an, für die Sie eine Farbe haben möchten, und Sie müssen diese Farben nach Ihren Wünschen einstellen. Das ALL.nanorc beschreibt Funktionen für alle noch nicht klassifizierten Dateien. Dies sind die Werkzeuge, die Sie benötigen, um loszulegen, nicht das Ende poliert Produkt.


72
2017-08-27 16:17



Danke, dass Sie diese schönen Syntaxdefinitionen in GitHub beibehalten haben. - Rubens Mariuzzo
Meine * .js-Dateien funktionierten nicht ... editiert / etc / nanorc, um alle anderen Syntax-Include wie in den FAQ zu entfernen github.com/nanorc/.... Nano-Nanorc - Carlton
Ich habe gerade Ihre Syntax Defs auf Mac OSX installiert. Es gibt nur eine Sache, die ich bemerken würde, nämlich dass die schwarze Farbe der offenen Klammer in Python auf dem schwarzen Hintergrund meines Terminals verloren geht - Tom Busby
Eigentlich gibt es ein Problem, ein Teil des farbigen Textes ist schwarz! Wenn unser Terminalhintergrund schwarz ist, sind diese Wörter unsichtbar! - dukevin
+ druciferre bietet unten einen tollen Befehl, der automatisch alle Syntaxdateien zu Ihrer .nanorc-Datei hinzufügt. Ich habe den Pfad so geändert, dass er auf den Standardinstallationsort verweist: find $HOME/.nano/syntax/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc - wasatchwizard


Ich habe diesen Befehl verwendet, um alle verfügbaren Sprachen schnell zu aktivieren.

find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc

Wie in anderen Antworten erwähnt, /usr/share/nano/ enthält die Definitionen für verschiedene Sprachen.

$ ls /usr/share/nano
asm.nanorc     fortran.nanorc   man-html       ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    man.nanorc     patch.nanorc   sh.nanorc
cmake.nanorc   groff.nanorc     mgp.nanorc     perl.nanorc    tcl.nanorc
c.nanorc       html.nanorc      mutt.nanorc    php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Auch erwähnt, um die Hervorhebung für eine Sprache zu ermöglichen, fügen Sie hinzu include und den Pfad zu der Sprachdefinition, die Sie aktivieren möchten ~/.nanorc Datei. Um beispielsweise C / C ++ zu aktivieren, würden Sie diese Zeile hinzufügen.

include /usr/share/nano/c.nanorc

Das find Der Befehl sucht nach Dateien oder Verzeichnissen innerhalb des angegebenen Verzeichnisses.

  • Das -iname Das Flag sagt, dass nur nach Dateien mit einem Namen gesucht werden soll, der mit endet .nanorc.
  • Das -exec flags definiert einen Befehl, der für jede gefundene Datei ausgeführt wird.
  • Das {} wird mit dem Dateinamen ersetzt.
  • \; wird verwendet, um das Ende des Befehls anzugeben, der zur Ausführung ausgeführt werden soll find Befehl.
  • Zuletzt, >> ~/.nanorc bewirkt, dass die Ausgabe an Ihre angehängt wird ~/.nanorc Datei.

37
2017-10-18 18:22



Toller Tipp und Erklärung, vielen Dank! ;) - daveoncode


Dies sollte alle standardmäßig enthaltenen Syntax-Highlighting-Plugins und alle, die Sie zu / usr / share / nano hinzufügen, beinhalten:

find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc

Oder editieren Sie / etc / nanorc und sehen Sie, ob Sie die Inclends auskommentieren können.

Dies funktioniert, wenn Sie eine Version von nano haben, die keine Platzhalter in der .nanorc-Datei akzeptiert.

Führen Sie diese Zeile jedes Mal aus, wenn Sie eine zusätzliche .nanorc-Farbkonfiguration hinzufügen.


6
2017-12-28 14:23





Ich habe einige Nano-Syntax Highlighting bei mein Github.

Es gibt Live Beispiel Screenshots für HTML und PHP:

enter image description here

und

enter image description here


2
2018-05-03 06:57





wget -r -nH --cut-dirs=3 --no-parent --reject="index.html*" https://nanosyntax.googlecode.com/svn/trunk/syntax-nanorc/ -P ~/.nano-syntax
for i in `ls --color=never -1 ~/.nano-syntax/*.nanorc` ; do echo "include $i" >> ~/.nanorc ; done

1
2018-06-28 03:08



Es wäre hilfreich, wenn Sie erklären könnten, warum dies eine nützliche Antwort für neuere Benutzer ist. Was macht der Befehl? Was ändert sich? Zufällig vorschlagen, eine Befehlszeile auszuführen, ist nicht hilfreich. - Kevin Bowen


Die vollständigsten und aktuellsten Syntax-Hilighter für Nano werden beibehalten Hier.

Um alle Textmarker für Ihren Benutzer zu installieren, führen Sie einfach Folgendes aus:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc

1
2017-07-29 10:21



Die Lösung ist gut, aber ich würde einen anderen Ordner für verwenden git clone. Der Inhalt der /tmp Der Ordner wird bei jedem Systemstart gelöscht und Sie können daher nie einen git pull. - A.B.
Ihr Sprach-Tag ist falsch. js ist nicht bash oder shell-script und ich habe den Link hinter das Wort gestellt here. Wo ist das Problem? - A.B.
@A.B. Es spielt keine Rolle, ob dieser Ordner seit wann weg ist make install Alle Syntaxdateien werden an den sicheren Ort kopiert, wo sie hingehören: ~/.nano/syntax. - Pablo Bianchi


Sie können dies verwenden, um alle: (Fügen Sie dies zu ~ / nanorc Datei)

include "/usr/share/nano/*.nanorc"

Glückliche Kodierung!


1
2018-02-12 04:00





Ich habe Syntax-Highlighting für js gefunden Hier.

Ich habe es in meine Benutzerdatei an hinzugefügt ~/.nanorc

Um jedoch eine Datei zu bekommen, an die ich mich anhängen konnte, musste ich zuerst kopieren /usr/share/nano/nanorc.nanorc zu meinem lokalen Ordner zuerst als ~/.nanorc.


0
2017-07-05 23:21





Für diejenigen, die Probleme haben, nachdem Sie die obigen Anweisungen befolgt haben, überprüfen Sie auch, ob Sie haben doppelte Definitionen. Diese werden deaktiviert alle Syntaxhervorhebung zum alle Dateien. Ich bin darauf gestoßen, nachdem ich eine hinzugefügt habe nanorc.nanorc Datei, und nicht bewusst, dass meine ~/.nanorc hatte bereits einen identischen Abschnitt, d.h.

## Here is an example for nanorc files.
##
syntax "nanorc" "\.?nanorc$"
## Possible errors and parameters
icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
## Keywords
icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|$
icolor green "^[[:space:]]*(set|unset|include|syntax)\>"
(...)

0
2018-02-19 04:50