Текстовый редактор nano подсветка синтаксиса

nano в Ubuntu - это текстовый редактор по умолчанию. В самом начале знакомства с Linux про vim читать было некогда, а в nano все понятно сразу :) В общем привык к нему уже, чтобы там про него не говорили плохого. Сегодня решил проверить как работает у него подсветка синтаксиса. Раньше в подсветке синтаксиса не было большой необходимости, но сейчас когда на курсах Linux начали изучать bash и дома приходится просматривать скрипты системы (и самому писать), подсветка была бы очень кстати.

Включается подсветка синтаксиса просто (напомню речь идет об Ubuntu 9.10). Необходимо из каталога /usr/share/nano/examples/ скопировать в домашний каталог файл nanorc.sample и переименовать его в .nanorc:

1
$ cp /usr/share/nano/examples/nanorc.sample ~/.nanorc

Далее необходимо в этом файле раскомментировать следующую строку:

#include “/usr/share/nano/sh.nanorc”

то есть убираем символ #.

После этого должна работать подсветка синтаксиса, но она не заработала… Открываю скрипты из /etс/init.d/ и никакой подсветки нет. Начал искать, что сделал не так. На работе так и не нашел в чем дело. Сегодня дома сделал тоже самое и никакого эффекта. Решил, что не мой день сегодня и решил продолжить изучение bash. Создал тестовый файл test.sh и начал набирать первую строку и вдруг вижу - подсветка работает. В итоге выяснил, что nano подсвечивает файлы по расширению (условному, так как в linux отсутствует понятие “расширение файла”).

Если открыть файл /usr/share/nano/sh.nanorc, то первая строка этого файла syntax “sh” “\.sh$” как раз и указывает, что такой подсветкой нужно подсвечивать файлы которые заканчиваются на .sh.

А как же тогда быть с файлами без расширения? То есть большинством скриптов системы. Я поступил следующим образом. Почитал man nanorc и изменил строку в файле /usr/share/nano/sh.nanorc: с syntax “sh” “\.sh$” на syntax “sh” “\.sh$” “”.

После этого все файлы без расширения или с расширением .sh подсвечиваются по правилам синтаксиса bash. Так как большинство скриптов (если не все) в /etc/init.d/ написаны на bash, то это как раз то что мне и нужно было.

Статьи и новости схожей тематики:

Комментариев: 2

  1. sergkarpenko:

    можно указывать нужный формат для подсветки при запуске
    nano -Y bash upload

    и еще где-то у меня есть ссылка на 4 десятка подсветок для апача, htaccess, vhosts, php и тп
    так как по дефолту там не очень много всего.

    Ответить

    Igorka Reply:

    Да точно. Спасибо за подсказку. Только нужно чтобы в каталоге /usr/share/nano был файл *.nanorc, в котором будет в строке syntax описано слово bash - syntax “bash” “\.sh$”. В Ubuntu по умолчанию такого файла нет. Поэтому нужно его или создать или писать nano -Y sh file. Можно еще сделать алиас:

    igor@adm-ubuntu:~/linux$ alias nano=”nano -Y sh”

    Тогда всегда по умолчанию будет подсветка описанная в файле /usr/share/nano/sh.nanorc. В этом случае можно не менять строку syntax “sh” “\.sh$”

    Ответить

Оставьте свой отзыв