В этом разделе я опишу настройку различных программ для работы с кириллическими текстами. Этот раздел не охватывает текстовые процессоры, настройка которых описывается позже (смотри раздел Текстовые процессоры)
Для проверки правописания я использую программу 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, созданный Валерием Алексеевым ([email protected]
),
позволяет пользователю переключаться между кириллическим и
стандартным модами ввода и преобразовывать текстовый буфер из
одной русской кодировки в другую (это очень полезно для чтения текстов,
импортированных из 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
не распознает границы русских слов. Я предполагаю,
что тоже самое происходит и с перекодировкой из верхнего регистра
в нижний и обратно.