Авг 212012
 

Захотелось чуть украсить консоль у 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:]])(#|;)"

 Leave a Reply

(required)

(required)

38 Запросов к базе. 0,362 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.198.108.19