Я пытаюсь установить схему подсветки синтаксиса «по умолчанию» для nano при редактировании файлов без расширения, таких как /etc/nginx/sites-available/default
или , /etc/ssh/sshd_config
но у меня не получается это сделать.
Я скопировал c
файл подсветки синтаксиса /usr/share/nano/default.nanorc
и добавил его include "/usr/share/nano/deafult.nanorc"
в свой ~/.nanorc
файл, но подсветка файлов без расширения все еще не работает.
Кто-нибудь знает, как это включить?
решение1
Вы можете определить это самостоятельно. Вот хороший пример с форумов Arch Linux.
Скопируйте следующий код и сохраните его в/usr/share/nano/какконф.нанорц
# 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="-->"
Затем включите эту конфигурацию в файл /etc/nanorc как
## Configuration files (catch-all syntax)
include "/usr/share/nano/conf.nanorc"
Первая строка кода в фрагменте включает регулярное выражение, которое определяет, для каких имен файлов следует использовать эту подсветку синтаксиса. Всякий раз, когда вы сталкиваетесь с файлом конфигурации, который не соответствует этому, но вы все равно хотите открыть его с подсветкой синтаксиса, вы можете вручную выбрать этот синтаксис с помощью переключателя nano -Y, например:
nano -Y conf myConfigFile
Источник:Подсветка синтаксиса nano: универсальный синтаксис для файлов конфигурации.
решение2
Файл nanorc должен иметь
syntax "default"
без какого-либо регулярного выражения после него.
решение3
Подсветка синтаксиса Nano для всех файлов с ибезрасширение:
Создать резервную копию из файла по умолчанию
yes | cp /usr/share/nano/default.nanorc /usr/share/nano/default.nanorc.backup
Создать копию из файла конфигурации
yes | cp /usr/share/nano/sh.nanorc /usr/share/nano/default.nanorc
Изменить имя расширения синтаксиса на значение по умолчанию
sed -i -e 's/syntax "sh" "\\.sh$"/syntax "default"/g' /usr/share/nano/default.nanorc
Сохраните все файлы .nanrc во включенном файле
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc