Захотелось чуть украсить консоль у freebsd.
Я использую редактор nano будем на нем подсвечивать синтаксис.
Для начало установим сам редактор.
# cd /usr/posrt/editors/nano && make install clean
Кроме подсветки синтаксиса меня по стандарту все в нем устраивало.
Заходим в эту директорию ls -al /usr/local/share/nano/ и смотрим что лежит в ней.
pav-253# ls -al /usr/local/share/nano/ total 68 drwxr-xr-x 2 root wheel 1024 21 авг 16:57 . drwxr-xr-x 57 root wheel 1024 20 авг 10:56 .. -r--r--r-- 1 root wheel 793 28 апр 2011 asm.nanorc -r--r--r-- 1 root wheel 1644 28 апр 2011 awk.nanorc -r--r--r-- 1 root wheel 1584 28 апр 2011 c.nanorc -r--r--r-- 1 root wheel 878 28 апр 2011 cmake.nanorc -r--r--r-- 1 root wheel 331 28 апр 2011 css.nanorc -r--r--r-- 1 root wheel 680 28 апр 2011 debian.nanorc -r--r--r-- 1 root wheel 2287 28 апр 2011 fortran.nanorc -r--r--r-- 1 root wheel 3449 28 апр 2011 gentoo.nanorc -r--r--r-- 1 root wheel 723 28 апр 2011 groff.nanorc -r--r--r-- 1 root wheel 124 28 апр 2011 html.nanorc -r--r--r-- 1 root wheel 650 28 апр 2011 java.nanorc -rw-r--r-- 1 root wheel 775 21 авг 16:57 make.conf.nano -r--r--r-- 1 root wheel 258 28 апр 2011 makefile.nanorc -r--r--r-- 1 root wheel 264 28 апр 2011 man.nanorc -r--r--r-- 1 root wheel 219 28 апр 2011 mgp.nanorc -r--r--r-- 1 root wheel 95 28 апр 2011 mutt.nanorc -r--r--r-- 1 root wheel 1140 28 апр 2011 nanorc.nanorc -r--r--r-- 1 root wheel 1776 28 апр 2011 objc.nanorc -r--r--r-- 1 root wheel 891 28 апр 2011 ocaml.nanorc -r--r--r-- 1 root wheel 242 28 апр 2011 patch.nanorc -r--r--r-- 1 root wheel 1498 28 апр 2011 perl.nanorc -r--r--r-- 1 root wheel 722 28 апр 2011 php.nanorc -r--r--r-- 1 root wheel 752 28 апр 2011 pov.nanorc -r--r--r-- 1 root wheel 537 28 апр 2011 python.nanorc -r--r--r-- 1 root wheel 1505 28 апр 2011 ruby.nanorc -r--r--r-- 1 root wheel 721 28 апр 2011 sh.nanorc -r--r--r-- 1 root wheel 2150 28 апр 2011 tcl.nanorc -r--r--r-- 1 root wheel 141 28 апр 2011 tex.nanorc -r--r--r-- 1 root wheel 260 28 апр 2011 xml.nanorc
Основной конфигурационный файл называется так nanorc.nanorc.
Скопируем его к выбранному пользователю.
# cp /usr/local/share/nano/nanorc.nanorc ~/.nanorc
Ну а теперь добавим нужную подсветку в наш только что созданный файл у пользователя.
# TeX include "/usr/local/share/nano/patch.nanorc" # POV-Ray include "/usr/local/share/nano/pov.nanorc" # Perl include "/usr/local/share/nano/perl.nanorc" # Nanorc files include "/usr/local/share/nano/nanorc.nanorc" # Python include "/usr/local/share/nano/python.nanorc" # C/C++ include "/usr/local/share/nano/c.nanorc" # Groff include "/usr/local/share/nano/groff.nanorc" # Assembler include "/usr/local/share/nano/asm.nanorc" # Ruby include "/usr/local/share/nano/ruby.nanorc" # Manpages include "/usr/local/share/nano/man.nanorc" #HTML include "/usr/local/share/nano/html.nanorc" # Shell scripts include "/usr/local/share/nano/sh.nanorc" # Sun Java include "/usr/local/share/nano/java.nanorc" # ну вы поняли, остальные я добавил кучей. include "/usr/local/share/nano/awk.nanorc" include "/usr/local/share/nano/makefile.nanorc" include "/usr/local/share/nano/sh.nanorc" include "/usr/local/share/nano/man.nanorc" include "/usr/local/share/nano/cmake.nanorc" include "/usr/local/share/nano/tcl.nanorc" include "/usr/local/share/nano/php.nanorc" include "/usr/local/share/nano/make.conf.nano"
Пример, понадобилось мне подсветить некоторые функции в /etc/make.conf
Создаем файл в # nano /usr/local/share/nano/make.conf.nano
Вписываем в него что мы бы хотели подсветить в файле make.conf.
# Подсветка make.conf syntax "make.conf" "make.conf$" color brightred "\$+[{(][a-zA-Z0-9_-]+[})]" #знак = color brightyellow "[=]" #основные символы #color magenta "" color green "\" #для false & true color red "false" color brightwhite "true" #для proxy color brightred "FETCH_ENV.*" #Посветим переменные с NO color brightcyan "NO.*$" #Какой язык используем. color brightmagenta "DOC_LANG" #Подсвечиваем коментарии. icolor brightblue "^[[:space:]]*#.*$" icolor cyan "^[[:space:]]*##.*$"
В итоге мы получим к примеру такое чудо.
Доработал, теперь все конфигурационные файлы с разширением .conf подсвечены.
# string # name icolor red "=" icolor yellow start="=" end="$" icolor magenta start="(^|[[:space:]])[0-9a-z-]" end="=" # parenthesis icolor brightred "(^|[[:space:]])((\[|\()[0-9a-z_!@#$%^&*-]+(\]|\)))" # цифры color green "[[:space:]][0-9.KM]+" # комментарии color cyan start="(^|[[:space:]])(#|;).*$" end="$" color brightblue "(^|[[:space:]])(#|;)"