Ich versuche, ein „Standard“-Syntaxhervorhebungsschema für Nano festzulegen, wenn ich Dateien ohne Erweiterung wie /etc/nginx/sites-available/default
oder bearbeite /etc/ssh/sshd_config
, aber es scheint nicht zu funktionieren.
Ich habe die c
Datei mit der Syntaxhervorhebung kopiert /usr/share/nano/default.nanorc
und dann include "/usr/share/nano/deafult.nanorc"
zu meiner ~/.nanorc
Datei 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