Файлы .nanorc → это файлы описания подсветки синтаксиса используемого в текстовом документе.
Местонахождение данных файлов — это каталог /usr/share/nano
Сперва на всякий случай делаю бекап дефолтного каталога /usr/share/nano:
ekzorchik@srv-mail:~$ sudo tar cPf usr_share_nano.tar /usr/share/nano/
Чтобы использовать подсветку синтаксиса нужно объявить данные этих файлов в профиле домашнего каталога файла ~/.nanorc, к примеру для языка Python:
ekzorchik@srv-mail:~$ nano ~/.nanorc
include /usr/share/nano/python.nanorc
Содержимое же файлы python.nanorc представляет из себя:
ekzorchik@srv-mail:~$ cat /usr/share/nano/python.nanorc | head -n 5
syntax "python" "\.py$" "jhbuildrc$"
header "^#!.*/(env +)?python[-0-9._]*( |$)"
KEYWORD: "\<(as|assert|break|class|continue|def|del|elif|else|except)\>"
KEYWORD: "\<(exec|finally|for|from|global|if|import|lambda)\>"
На заметку: Изменения по добавления файлов подсветки синтаксиса документа применяются сразу же, не нужно делать Logoff/Logon или переоткрывать консоль командной строки.
Теперь если создать python скрипт:
ekzorchik@srv-mail:~$ nano test
#!/usr/bin/python
print "Hello ekzorchik.ru\n"
ekzorchik@srv-mail:~$ chmod +x test
ekzorchik@srv-mail:~$ nano test
Вот теперь в таком ракурсе на скрипт наглядно видно код.
По умолчанию в профиле пользователя нет файла ~/.nanorc и все настройки по подсветки синтаксиса в текстовом файле предопределены в файле для всех пользователей системы: /etc/nanorc так что можно либо делать это централизованно либо же индивидуально.
Также можно прописать множеством скриптов описания подсветки синтаксиса:
ekzorchik@srv-mail:~$ rm .nanorc
ekzorchik@srv-mail:~$ wget https://github.com/nanorc/nanorc/archive/master.zip
ekzorchik@srv-mail:~$ sudo apt-get install unzip -y
ekzorchik@srv-mail:~$ unzip master.zip
ekzorchik@srv-mail:~$ sudo cp nanorc-master/*.nanorc /usr/share/nano/
Вывожу все файлы .nanorc в общем каталоге /usr/share/nano:
ekzorchik@srv-mail:~$ ls -l /usr/share/nano/ | awk '{print $9}'
А теперь прописываю их в профиле текущего пользователя:
ekzorchik@srv-mail:~$ nano ~/.nanorc
include /usr/share/nano/python.nanorc
asm.nanorc
awk.nanorc
c.nanorc
cmake.nanorc
coffeescript.nanorc
colortest.nanorc
csharp.nanorc
получилось так, но не для каждой же строки вручную добавлять include /usr/share/nano/, сперва выясню количество определенных байтов файла опытным путем:
ekzorchik@srv-mail:~$ head -c24 ~/.nanorc
include /usr/share/nano/
Не знаю правда зачем я это делал, но так мне виделось решение проблемы, конечно же это не понадобилось и родилась следующая строка:
ekzorchik@srv-mail:~$ line="include /usr/share/nano/" ; for a in $(cat ~/.nanorc); do echo "${line}${a}" > .nanorc; done
Хотя уже лучше использовать вот эту строку:
ekzorchik@srv-mail:~$ find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc
Если нужно удалить данные добавленные файлы .nanorc из дефолтного каталога: /usr/share/nano — то делается это так, на момент написания этой заметки число было 28 декабря 2016 года, вот за это число и удаляю все файлы:
ekzorchik@srv-mail:~$ sudo find /usr/share/nano -newermt "Dec 28" -exec /bin/rm {} \;
Также можно установить данные файлы .nanorc в систему и способ который идет в комплекте распакованного архива: master.zip
ekzorchik@srv-mail:~$ sudo apt-get install make -y
ekzorchik@srv-mail:~$ cd nanorc-master/
ekzorchik@srv-mail:~/nanorc-master$ make
ekzorchik@srv-mail:~/nanorc-master$ sudo make install-global
Installed: /usr/local/share/nano/*.nanorc
ekzorchik@srv-mail:~/nanorc-master$ cd ~
ekzorchik@srv-mail:~$ nano ~/.nanorc
Include /usr/local/share/nano/ALL.nanorc
или же для всех пользователей системы:
ekzorchik@srv-mail:~$ sudo nano /etc/nanorc
Include /usr/local/share/nano/ALL.nanorc
Теперь если вернуться к созданному выше python скрипту то его визуализированное представление будет следующим:
ekzorchik@srv-mail:~$ nano test
Из этого следует вывод, если хочется то можно использовать дефолтное, а если хочется тут труд многих можно применить и для себя; не зачем тратить время на изобретаемый велосипед если такая мысль посетит Вас при собственном описании подсветки содержимого текстового файла. Все уже давным давно проделано многими. А я разобрал то что хотел и мне пора прощаться, до новых заметок, с уважением автор блога Олло Александр aka ekzorchik.