В этом разделе я опишу настройку различных программ для работы с кириллическими текстами. Этот раздел не охватывает текстовые процессоры, настройка которых описывается позже (смотри раздел Текстовые процессоры)
Для проверки правописания я использую программу GNU ispell
. Она
имеет очень гибкие настройки и возможности для расширения. Ее можно использовать
при проверки правописания текстов, написанных на языках, отличных от
английского, путем добавления новых словарей.
Константин Книжник создал очень хороший русский словарь для
ispell
. Вы можете найти его на домашней страничке К.Книжника. В
поставку словаря включен полезный скрипт, обеспечивающий инкрементный режим
проверки правописания слов для emacs
;
В идеальном случае, когда ваш ispell
установлен правильно, вам
надо только создать словарь, используя команды, обеспечиваемые файлом
Makefile
из дистрибутива. Однако с некой долей вероятности у вас
возникнут проблемы с ispell
, который откажется понимать 8-ми битные
данные. Это означает, что в вашей системе ispell
скомпилирован без
поддержки 8-ми битных символов. В этом случае вам не удастся избежать
перекомпиляции пакета ispell
.
Если у вас все нормально, то можете инициировать проверку правописания для
русских текстов путем вызова программы ispell
с опцией '-d
russian'
Если вы используете Emacs (подробнее в разделе Emacs), то, вероятно, вы не против добавить пункт в меню для проверки с русским словарем.
Константин Книжник советует выполнить следующие действия:
Чтобы иметь возможность переключить запускаемый EMACS'ом ISPELL на
использование русского словаря, можно попробовать добавить в .emacs
следующие строки
(setq ispell-dictionary-alist (cons '("russian" ; make russian selectable "[\xc0-\xdf\xe0-\xff]" "[^\xc0-\xdf\xe0-\xff]" "[']" nil ("-B" "-d" "russian") nil) ispell-dictionary-alist)) (setq ispell-menu-map-needed t) (setq ispell-menu-map nil) (load "ispell") ; reload ISPELL
Необходимые действия уже содержатся вcyrconf.el
в директории emacs, поэтому в случае использование нижеследующего включать их в.emacs
не нужно.
Более правильным (с точки зрения способа создания) чем словарь Книжника является "Словарь русского языка для ispell" Александра Лебедева
Словарь постоянно совершенствуется, дополняется и корректируется. Последнюю версию словаря можно найти на сервере: mch5.chem.msu.su
Я использую именно этот словарь.
Есть две версии редактора Emacs - GNU Emacs
и
XEmacs
. Они обеспечивают более или менее сходный набор функций и
возможностей, но при этом реализация некоторых деталей расходится довольно
сильно. Настройка кириллицы требует некого низко-уровневого (в духе Emacs Лиспа)
"хака" и немного отличается для этих двух реализаций.
Минимальная поддержка кириллицы в GNU emacs
(вам не нужно этого
делать при настройке XEmacs
) обеспечивается при выполнении
следующих вызовов, добавленных в .emacs
(при условии, что поддержка
символов кириллицы установлена для консоли или для X Window соответственно):
(standard-display-european t) (let ((m (current-input-mode))) (set-input-mode (car m) (nth 1 m) 1))
Это позволит вам видеть и вводить символы, находящиеся в верхней части ASCII таблицы.
Однако, этого не достаточно. Emacs обрабатывает кириллические символы как специальные и, как следствие, не распознает границы русских слов и не делает различия между строчными и заглавными буквами. Чтобы обойти это, вам следует несколько модифицировать таблицы синтаксиса и регистра emacs:
(require 'case-table) (let* ((ruc "\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361") (rlc "\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321") (i 0) (len (length ruc))) (while (< i len) (modify-syntax-entry (elt ruc i) "w ") (modify-syntax-entry (elt rlc i) "w ") (set-case-syntax-pair (elt ruc i) (elt rlc i) (standard-case-table)) (setq i (+ i 1))))
Для этого был создан файл rusup.el
, который содержит эти
команды, также как и пару других удобных функции. Вы должны вызвать его в вашем
~/.emacs
.
Обратите внимание на пакет russian.el, созданный
Валерием Алексеевым (valery@math.uga.edu
), позволяет пользователю
переключаться между кириллическим и стандартным модами ввода и преобразовывать
текстовый буфер из одной русской кодировки в другую (это очень полезно для
чтения текстов, импортированных из MS-DOS или Windows).
ВНИМАНИЕ:Помимо настройки, описанной выше, существует альтернативный
путь обучения обоих версий emacs кириллице. Для этого используется
MULE
(MULtilanguage Emacs support). Для настройки кириллицы через
MULE
берем iso8859-5
шрифты (см. раздел Где
взять шрифты для X-window?, подключаем их к иксам, и выбираем в меню
Mule
нужную кодировку. Этот способ является более "идеологически"
правильным.
Совет:При работе с X-window для Emacs, вероятно,
лучше всего подойдут шрифты lucidatypewriter
из коллекции шрифтов
Болховитянова (См. раздел Cyr-RFX).
Редактор vi
(по крайней мере, его клон vim
,
присутствующий в большинстве дистрибутивов Linux) знает о существовании 8-ми
битных символов. Это дает вам возможность вводить кириллические буквы. Редактор
правильно распознает границы слов. Я ничего не знаю по поводу правил
преобразования из строчных в заглавные и обратно, так как я не часто работаю в
vi
. Если вы знаете что-либо об этом, то, пожалуйста, сообщите
мне
Все проблемы joe можно решить правильно настроив locale (См. раздел Настройка локали (если он правильным образом "пропатчен"). Если у вас ничего не получилось, то попробуйте рецепт описанный ниже.
Для того чтобы распознавать 8-ми битные символы, joe
требует
специальную опцию -asis
. Вы можете указать ее в командной строке
или вставить в файл ~/.joerc
для личного пользования или в
/usr/lib/joerc
для настройки всей системы.
Однако, joe
не распознает границы русских слов. Я предполагаю,
что тоже самое происходит и с перекодировкой из верхнего регистра в нижний и
обратно.