Как настроить подсветку синтаксиса в текстовом редакторе Nano (на Ubuntu/Debian)

imageВ предыдущих заметках о Linux для редактирования разнообразных конфигурационных файлов я использовал текстовый редактор nano. По умолчанию этот редактор имеет подсветку синтаксиса лишь для некоторых типов файлов. В этой заметке я кратенько пробегусь по теме настройки подсветки синтаксиса с помощью входящих в состав пакета nano nanorc-файлов, а также приведу примитивный пример создания собственного файла настроек.

Основной конфигурационный файл nano имеет путь /etc/nanorc. В этом файле, в частности, прописаны источники глобальных настроек подсветки синтаксиса для разных типов файлов, которые подгружаются из внешних файлов *.nanorc.

image

Помимо того, что абсолютные пути к этим файлам прописаны в /etc/nanorc, найти месторасположение всех таких файлов, связанных с nano, можно по информации из менеджера пакетов:

dpkg -S nano | grep '\.nanorc$'

image

Как видим, в нашей системе файлы настроек подсветки синтаксиса для разных типов файлов расположены в каталоге /usr/share/nano/. Если нужно переопределить глобальные настройки /etc/nanorc для текущего пользователя, то в профиле пользователя можно создать файл ~/.nanorc (по умолчанию отсутствует), в котором будут подключаться нужные файлы *.nanorc . Например, подключить все файлы *.nanorc из каталога /usr/share/nano/ можно такой командой:

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

В результате выполнения этой команды файл ~/.nanorc наполнится строками подключения файлов настройки синтаксиса:

include /usr/share/nano/fortran.nanorc
include /usr/share/nano/asm.nanorc
include /usr/share/nano/sh.nanorc
...

Однако с имеющимся по умолчанию набором файлов *.nanorc разные файлы часто используемых типов, например конфигурационные файлы с расширением .conf, будут по прежнему открываться в редакторе без подсветки синтаксиса. Мы можем создать для таких файлов собственный файл настроек подсветки синтаксиса:

sudo nano /usr/share/nano/mysettings.nanorc

В первой строке файла зададим название цветовой схемы и определим расширения файлов, при открытии которых будет использоваться наша цветовая схема. Далее идут правила подсветки, где сначала определяется цвет, а затем маска текстовых строк, которые будут подсвечиваться этим самым цветом. В моём случае взяты некоторые цветовые параметры по примеру файла /usr/share/nano/sh.nanorc

syntax "mycolors" "\.(conf|config|cfg|cnf|txt|ini)$"

# comments
color cyan "(^|[[:space:]])#.*$"
color green "(^|[[:space:]])##.*$"
# vars
icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
# strings
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"

После того, как файл сохранён, делаем его присоединение либо в файле /etc/nanorc, либо в файле ~/.nanorc.

echo include "/usr/share/nano/mysettings.nanorc" >> ~/.nanorc

Теперь все файлы с расширениями *.conf, *.config, *.cfg, *.cnf, *.ini при открытии в nano будут "радовать глаз" нашей незатейливой цветовой схемой.

image

При этом, если мы захотим с такой же подсветкой синтаксиса открыть файлы с какими-либо другими расширениями, можно использовать ключ –Y с указанием имени нашей цветовой схемы:

nano -Y mycolors ~/anyfile.anyext

Таким образом мы можем настроить удобную для себя подсветку синтаксиса на все случаи жизни.

Для любителей готовых решений в Интернете есть масса авторских коллекций файлов *.nanorc, например здесь GitHub - Syntax color highlighting for nano, или здесь GoogleCode - NanoSyntax

 

Дополнительные источники информации:

Всего комментариев: 2 Комментировать

  1. Nikolay /

    А я все по старинке :) nano -Y sh

    :)

  2. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 1. Установка Icinga 2 | Блог IT-KB /

Добавить комментарий