пятница, 6 марта 2009 г.

emacs и highlight

Решил сделать два дела, научиться писать вставки на lisp в emacs, а также - пользоваться утилиткой highlight. Идея крайне проста, пишу простой код в emacs, выделяю, вызываю, текст замещается на результат вызова highlight.

Решить оказалось проще, чем сделать, но, вот она функция, и одновременно результат:

(defun kilork-highlight (start end syntax)
"kilork's highlight"
(interactive "r\nssyntax: \n")
(shell-command-on-region start end (concat "highlight --style=vim-dark -f -X --syntax=" syntax) 1))


Я писал текст прямо в emacs. Т.е. по окончании ввода команды я нажал C+x C+e. Затем перешел в начало функции, нажал С+Space. Снова в конец функции и M+x kilork-highlight. Итак, получили приглащение к вводу языка для раскраски, вводим lisp, ввод. Текст заменился на подкрашенный.

Все же, я добился желаемого, и буду и дальше осваивать emacs lisp. Есть ощущение, что я смогу найти много способов сделать свою жизнь более интересной благодаря удивительным свойствам этого языка в применении к этому редактору. Задание на доработку команды для возможности внесения правки в код и повторного переподкрашивания.