LINUX.ORG.RU

Мой конфиг grc для колоризации терминала

 , ,


0

6

Решил составить для grc универсальный конфиг, выполняющий подсветку чисел, размеров («100 MB»), дат («21.02.2011»), /путей/от/корня, прав доступа («-rwxr--r--»), ip адресов и прочих вещей, часто встречающихся в выводе команд. И вот что получилось.

На тестовом скриншоте консоль похожа на новогоднюю ёлку, но при реальной работе всё нормально — т.е. не бесит.

Сам конфиг и соответствующий набор алиасов для оболочки можно взять у меня в бложике.

Пришлось помучиться с правильной подсветкой прав доступа. «В лоб» у меня не получилось при помощи ()-захвата фрагментов регулярки распарсить такое выражение, пришлось подсвечивать в 4 шага: сначала захватывать тип файла, а затем по 3 фрагмента rwx. Хотя возможно, я просто протупил что-либо. Остальные регулярные выражения довольно тривиальны.

Для ссылок подсветку делать не стал, т.к. она уже встроена в gnome-terminal.

>>> Просмотр (1280x1024, 679 Kb)

★★

Проверено: JB ()

Спасибо! Конфиг взял, правда, пришлось немного отредактировать hwaddr в ifconfig и название Linux-ядра в uname. Пока больше ничего не заметил.

holka ()

Спасибо, полезная штука.

neocrust ★★★★★ ()

О, то что и искал. Самому лень разбираться было. Спасибо.

Captcha ()

это будет полезно, спасибо. Только зелёный уж слишком кричащий

cuki ★★★★ ()

еще бы оно вывод emerge подсвечивать научилось

devl547 ★★★★★ ()

годно. но права доступа - радуга :)
почему ccal не выделил число?

Tanger ★★★★★ ()

Зачет, однозначно.

athost ★★★★★ ()
Ответ на: комментарий от Tanger

> почему ccal не выделил число?

Сильно не разбирался, но, похоже, cal не подсвечивает число, если stdout смотрит не на терминал. Например команда cal | cat тоже не показывает посветку числа. Можно заюзать acoc вместо grc, он умеет притворяться терминалом.

geekless ★★ ()

Скрипт может и хороший, но сами цвета - безвкусный кричащий отстой.

jcd ★★★★★ ()
Ответ на: комментарий от jcd

Это дефолтная палитра гномотерминала. Вам ничего не мешает настроить свой терминал как угодно.

geekless ★★ ()

Годится, за конфиги спасибо.

еще бы оно вывод emerge подсвечивать научилось

Уж где-где, а в Gentoo-системах и так все красиво.

San ()

Отлично, забрал, спасибо.

folone ()

Нереально круто. Правда, IPv6-адреса не раскрашивает корректно.

melkor217 ★★★★★ ()

По мне так достаточно гентушной темы + cw
[I] app-misc/cw
Available versions: (~)1.0.15 1.0.16-r1 (~)1.0.16-r2
Installed versions: 1.0.16-r2(22:05:05 22.02.2011)
Homepage: http://cwrapper.sourceforge.net/
Description: A non-intrusive real-time ANSI color wrapper for common unix-based commands

pimiento ()

А теперь с альясом на make покажите как работает перемещение по конфигу ядра - make menuconfig

andreyu ★★★★★ ()

Шикарно, спасибо. Как по ощущениям - сильно добавляет тормозов башу? Вопрос не из праздного любопытства: временами приходится цепляться на сервера под лоадом 30-40, и даже голый баш стартует секунд 15-20 :(

leave ★★★★★ ()
Ответ на: комментарий от leave

Не знаю, как на серверах с такой нагрузкой, но на десктопе тормозов не замечено. По сути же, пара лишних fork-exec, чтение 2-х конфигов, 1 пайп с прогоном данных через регэкспы.

geekless ★★ ()
Ответ на: комментарий от geekless

> $ \make menuconfig, и будет тебе счастье :)

Да, это помогает.

Если Makefile сделан с помощью cmake, то от grc только хуже.

andreyu ★★★★★ ()

раз уж туту собрались знатоки grc то расскажите что надо доделать:

Traceback (most recent call last):
File «/usr/bin/grcat», line 122, in <module>
split(ll['colours'], ',')
File «/usr/bin/grcat», line 121, in <lambda>
(join(map(lambda x: get_colour(x), split(colgroup)),")),
File «/usr/bin/grcat», line 121, in <lambda>
(join(map(lambda x: get_colour(x), split(colgroup)),")),
File «/usr/bin/grcat», line 62, in get_colour
raise ValueError, 'Bad colour specified: '+x
ValueError: Bad colour specified: cya

оно там все такое на питоне в котором я не особо соображаю.
это конкретно с этими конфигами.

еще бывает вот так
Traceback (most recent call last):
File «/usr/bin/grc», line 117, in <module>
os.execvp(args[0], args)
File «/usr/lib/python2.6/os.py», line 344, in execvp
_execvpe(file, args)
File «/usr/lib/python2.6/os.py», line 380, in _execvpe
func(fullname, *argrest)
OSError: [Errno 2] No such file or directory


ну и так и далее. Водимо чего то от питона не хватает, но чего - не знаю.

griz ()
Ответ на: комментарий от leave

time ll

real   0m0.079s
user   0m0.040s
sys   0m0.016s

time ls -l

real   0m0.002s
user   0m0.004s
sys   0m0.000s

uspen ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.