Поддержка языков в Emacs

Здесь дается краткое описание поддержки различных языков в Emacs и приведены рекомендации по работе с многоязыковыми документами в Emacs (при использовании Emacs-Wiki mode).

Кодировки

Emacs хранит тексты в своем собственном представлении, однако при чтении файла и записи на диск нужно знать в какой кодировке файл. Есть, конечно, настройки по умолчанию, но иногда нужно работать с файлами в отличных от “умолчательной” кодировках.

Кодировку можно задать в начале файла, например, если первая строка содержит следующий текст:

-*- coding: koi8-r -*-

то редактор поймет, что текст в кодировке КОИ-8.

Другим способом является использование команды C-x RET с (universal-coding-system-argument) перед открытием файла, или C-x RET f (set-buffer-file-coding-system после открытия с последующей командой M-x revert-buffer.

Юникод (UTF-8)

Для многоязычных текстов лучше всего подходит Unicode (а точнее его разновидность UTF-8).

Чтобы редактор правильно работал с Юникодом, следует поставить пакет un-define.
Стало быть, для пущей надежности, следует в первой строке каждого файла писать

 -*- coding: utf-8 -*-

Language Environment

Для каждого языка, известного Редактору, существует Языковое Окружение (Language Environment). Для переключения Language Environments служит комбинация C-x RET l, после нажатия которой Редактор запросит имя языка (Tab как всегда работает!). Однако, пока Language Environments плохо “понимают” тексты в UTF-8.

Input methods

Каждое языковое окружение имеет по крайней мере один метод ввода символов языка. Достоинство Emacs’а в том, что можно спокойно работать с языками, для которых нет поддержки в операционной системе (единственное — нужны шрифты).
Переключение метода ввода — клавиша C-\.

Использование более двух языков о одном тексте

Имеется в виду использование латиницы (английского) и русского в качестве основных языков и еще одного (корейского, транскрипции IPA или, скажем, санскрита).

Так как латиницу поддерживают все, а русский поддерживается на уровне операционной системы, нужно только выбирать языковое окружение и метод ввода для третьего языка (метод ввода будет корректно работать только когда системная раскладка — латинская, и наоборот).

Так как сам файл будет в Юникоде, то никаких проблем с наличием текста сразу на трех языках быть не должно.

Опять-таки, скорее всего придется поставить пакет un-define.