Wie lege ich die Nano-Standardsyntaxhervorhebung für Dateien ohne Erweiterung fest?

Wie lege ich die Nano-Standardsyntaxhervorhebung für Dateien ohne Erweiterung fest?

Ich versuche, ein „Standard“-Syntaxhervorhebungsschema für Nano festzulegen, wenn ich Dateien ohne Erweiterung wie /etc/nginx/sites-available/defaultoder bearbeite /etc/ssh/sshd_config, aber es scheint nicht zu funktionieren.

Ich habe die cDatei mit der Syntaxhervorhebung kopiert /usr/share/nano/default.nanorcund dann include "/usr/share/nano/deafult.nanorc"zu meiner ~/.nanorcDatei hinzugefügt, aber ich erhalte immer noch keine Hervorhebung für Dateien ohne Erweiterung.

Weiß jemand, wie man das aktiviert?

Antwort1

Sie können dies selbst definieren. Hier ist ein gutes Beispiel aus den Arch Linux-Foren.

Kopieren Sie den folgenden Code und speichern Sie ihn in/usr/share/nano/alsconf.nanorc

# config file highlighting

syntax "conf" "(\.(conf|config|cfg|cnf|rc|lst|list|defs|ini|desktop|mime|types|preset|cache|seat|service|htaccess)$|(^|/)(\w*crontab|mirrorlist|group|hosts|passwd|rpc|netconfig|shadow|fstab|inittab|inputrc|protocols|sudoers)$|conf.d/|.config/)"

# default text
color magenta "^.*$"
# special values
icolor brightblue "(^|\s|=)(default|true|false|on|off|yes|no)(\s|$)"
# keys
icolor cyan "^\s*(set\s+)?[A-Z0-9_\/\.\%\@+-]+\s*([:]|\>)"
# commands
color blue "^\s*set\s+\<"
# punctuation
color blue "[.]"
# numbers
color red "(^|\s|[[/:|<>(){}=,]|\])[-+]?[0-9](\.?[0-9])*%?($|\>)"
# keys
icolor cyan "^\s*(\$if )?([A-Z0-9_\/\.\%\@+-]|\s)+="
# punctuation
color blue "/"
color brightwhite "(\]|[()<>[{},;:=])"
color brightwhite "(^|\[|\{|\:)\s*-(\s|$)"
# section headings
icolor brightyellow "^\s*(\[([A-Z0-9_\.-]|\s)+\])+\s*$"
color brightcyan "^\s*((Sub)?Section\s*(=|\>)|End(Sub)?Section\s*$)"
color brightcyan "^\s*\$(end)?if(\s|$)"
# URLs
icolor green "\b(([A-Z]+://|www[.])[A-Z0-9/:#?&$=_\.\-]+)(\b|$| )"
# XML-like tags
icolor brightcyan "</?\w+((\s*\w+\s*=)?\s*("[^"]*"|'[^']*'|!?[A-Z0-9_:/]))*(\s*/)?>"
# strings
color yellow "\"(\\.|[^"])*\"" "'(\\.|[^'])*'"
# comments
color white "#.*$"
color blue "^\s*##.*$"
color white "^;.*$"
color white start="<!--" end="-->"

Fügen Sie diese Konfiguration dann in die Datei /etc/nanorc ein als

## Configuration files (catch-all syntax)
include "/usr/share/nano/conf.nanorc"

Die erste Codezeile im Snippet enthält einen regulären Ausdruck, der definiert, für welche Dateinamen diese Syntaxhervorhebung verwendet werden soll. Wenn Sie auf eine Konfigurationsdatei stoßen, die nicht damit übereinstimmt, Sie sie aber trotzdem mit Syntaxhervorhebung öffnen möchten, können Sie diese Syntax manuell mit dem Schalter -Y von nano auswählen, wie folgt:

nano -Y conf myConfigFile

Quelle:Nano-Syntaxhervorhebung: Catch-All-Syntax für Konfigurationsdateien.

Antwort2

Die nanorc-Datei sollte

syntax "default"

ohne regulären Ausdruck danach.

Antwort3

Nano-Syntax hebt alle Dateien mit und hervorohneVerlängerung:

Backup aus Standarddatei erstellen

yes | cp /usr/share/nano/default.nanorc /usr/share/nano/default.nanorc.backup

Erstellen Sie eine Kopie aus einer Konfigurationsdatei

yes | cp /usr/share/nano/sh.nanorc /usr/share/nano/default.nanorc

Ändern Sie den Syntaxerweiterungsnamen auf den Standardwert.

sed -i -e 's/syntax "sh" "\\.sh$"/syntax "default"/g' /usr/share/nano/default.nanorc

Alle .nanrc-Dateien in der Include-Datei speichern

ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc

verwandte Informationen