Как настроить подсветку синтаксиса nano по умолчанию для файлов без расширения?

Как настроить подсветку синтаксиса nano по умолчанию для файлов без расширения?

Я пытаюсь установить схему подсветки синтаксиса «по умолчанию» для 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

Связанный контент