Здравствуйте всем!
Либо я что-то не получаю, либо тут подозрительно тихо.
Я так понимаю, тут планируется обсуждать XEmacs во всяких его проявлениях,
так что я отважусь наверное задать вопрос спецам по XEmacs.
Вопрос такой: есть англо-русский словарь в текстовом (почти) файле. Есть
консольная програмка, которая умеет по нему быстро искать заданное слово,
запускается она примерно так:
findword слово
и на stdout она выводит статью в словаре, связанную с этим словом или
близким к нему. Вопрос состоит в следующем - как бы так хитро прикрутить все
это дело в XEmacs?
Я в силу своих скромных познаний сделал буквально следующее:
(global-set-key [(control f2)] 'dictionary-er)
(defun dictionary-er()
"Translates one word from english into russian."
(interactive)
(get-buffer-create "Dictionary")
(call-process "/work/dict/findword" nil "Dictionary" nil
(read-string "English word: ")
)
)
Как-то худо-бедно работает, но плохо, что:
1) Статья показывается как есть - в plain text. Неплохо было бы вычленять из
нее кусок с транскрипцией (я могу написать соотв. regex, вопрос его
применить в e-lisp'е?) и показывать его нужным фонтом (фонт в системе
поставлен). Неплохо бы вылавливать конструкции типа "_текст", которые
являются условным обозначением жирного текста и выделять и их тоже. И т.п.
2) Основная проблема, косвенно связанная с п.1 - у меня XEmacs с MULE и если
в тексте статьи (а значит в транскрипции) встречается символ, которого нет в
наборе koi8-r в MULE, XEmacs такой текст не считает русским и показывает
*весь* в кодировке iso8859-1, что делает его абсолютно нечитабельным.
3) Желательно бы, чтобы буфер с переводом появлялся "обстоятельно", как,
например, при make - чтобы сам делил окно пополам, сам если нужно ловил
фокус и т.п.
Вопрос - как?
Заранее спасибо,
WBR, Михаил Якшин AKA GreyCat
http://3d.onego.ru/
mailto:yakshin@online.ru