Підтримка різних мов – ЧАСТИНА 1

Emacs підтримує широкий спектр наборів знаків різних мов, включаючи європейські варіанти латинського алфавіту, а також китайську, девангарі (хінді і маратхі), ефіопську, грецьку, IPA, японську, корейську, Лаоська, російську, тайську, тибетську і вєтнамську писемності Ці можливості були внесені з зміненою версією Emacs, відомої як MULE (від MULti-lingual Enhancement to GNU Emacs 1)

181  Введення в набори знаків різних мов

Користувачі цих систем письма виробили багато більш-менш стандартних систем кодування для зберігання файлів Внутрішньо Emacs використовує єдину багатобайтові кодування, так що в ній можна перемішувати знаки з усіх цих систем письма в одному буфері або рядку Це кодування представляє кожен знак, що не входить в ASCII, як послідовність байт в проміжку від 0200 до 0377 Emacs переводить з цієї багатобайтові кодування в різні інші системи кодування при зчитуванні й запису файлів, при обміні даними з підпроцесами і (в деяких випадках) в команді Cq (див Розділ 186 [багатобайтові перетворення], с 164)

Команда Ch h (view-hello-file) виводить файл etc / HELLO, який показує, як сказати здрастуйте на різних мовах Це ілюструє різні види писемності

Навіть у країнах, де використовуються ці знаки, на клавіатурах зазвичай немає клавіш для всіх з них Тому Emacs підтримує різні методи введення, як правило, один для кожної писемності або мови, щоб їх було зручно вводити

Префіксний ключ C-x hRETi  використовується для команд, які мають відношення до багатобайтові знакам, системам кодування і методам введення

182  Включення підтримки багатобайтові знаків

Ви можете включити або виключити підтримку багатобайтові знаків або для всього Emacs, або для окремого буфера Коли в буфері вимкнені багатобайтові знаки, кожен байт в ньому представляє один знак, навіть коди від 0200 до 0377 Старі засоби для підтримки європейських наборів знаків, ISO Latin-1 і ISO Latin-2, працюють так само, як вони працювали в Emacs 19, і крім того, працюють для інших наборів знаків ISO 8859

Однак, щоб використовувати ISO Latin, необовязково вимикати підтримку багатобайтові знаків багатобайтові набір знаків Emacs включає всі ці знаки, і Emacs може автоматично переводити з нього в коди ISO і навпаки

Щоб відредагувати певний файл у однобайтном поданні, зверніться до нього через find-file-literally Див Розділ 142 [Звернення], с 106 Щоб перетворити буфер в багатобайтові поданні в однобайтное уявлення тих же знаків, найпростіше зберегти вміст цього буфера у файлі, знищити його і знову звернутися до цього файлу за допомогою find-file-literally Ви також можете використовувати C-x hRETc (universal-coding-system-argument) і вказати raw-text як системи кодування для звернення до файлу або для його збереження Див Розділ 189 [Завдання кодування], с 168 Звернення до файлу як до raw-text не вимикає перетворення формату, декомпресію і автоматичний вибір режиму, на відміну від find-fileliterally

1 Багатомовне розширення GNU Emacs (Прим перекладача)

Щоб вимкнути підтримку багатобайтові знаків за замовчуванням, запустіть Emacs з ключем -unibyte (див Розділ A2 [Ключі запуску], с 386) або встановіть змінну середовища EMACS_UNIBYTE Ви також можете налаштувати параметр enable-multibytecharacters або, що еквівалентно, прямо встановити змінну default-enablemultibyte-characters у вашому файлі ініціалізації, це дає в основному той же ефект, що і -unibyte.

Під час ініціалізації не створюються багатобайтові рядки з значень змінних середовища, входжень файлу / etc / passwd, etc, Які містять не входять до ASCII восьмібітние знаки Однак, файл ініціалізації зазвичай зчитується як багатобайтові – як всі файли на Ліспі – навіть якщо вказано -unibyte. Щоб уникнути створення багатобайтові рядків з знаходяться в цьому файлі рядків з не-ASCII-знаками, помістіть в його першому рядку коментар з текстом – *-unibyte: t – * -. Для файлів ініціалізації інших пакетів, начебто Gnus, потрібно зробити те ж саме

У рядку режиму показано, чи дозволені багатобайтові знаків у поточному буфері Якщо вона включена, перед двокрапкою на початку рядка режиму стоять два або більше знака (найчастіше два дефіса) Коли багатобайтові знаки не включені, перед двокрапкою є тільки один дефіс

183  Мовні середовища

Всі підтримувані набори знаків припустимі в буферах Emacs, якщо включені багатобайтові знаки немає необхідності вибирати конкретну мову, щоб побачити його знаки в буфері Emacs Однак, важливо вибрати мовну середовище, щоб отримати різні установки за замовчуванням Насправді мовне середовище являє вибір кращою писемності (більшою чи меншою мірою), а не вибір мови

Мовне середовище визначає, які системи кодування розпізнаються при зчитуванні тексту (див Розділ 188 [Розпізнавання кодування], с 166) Це відноситься до файлів, що приходить поштою, мережевим новинам і будь-якому іншому тексту, який ви зчитуєте в Emacs Вона також може задавати систему кодування, використовувану за замовчуванням для створення файлу Кожна мовна середу також вказує приймається за замовчуванням метод введення

Мовне середовище вибирається командою Mx set-language-environment Не має значення, який буфер є поточним під час запуску цієї команди, тому що її дії застосовуються глобально до всього сеансу Emacs Підтримувані мовні середовища включають:

Chinese-BIG5,  Chinese-CNS, Chinese-GB, Cyrillic-Alternativnyj,   Cyrillic-ISO, Cyrillic-KOI8,  Devanagari, English, Ethiopic, Greek, Hebrew, Japanese, Korean, Lao, Latin-1, Latin-2, Latin-3, Latin-4, Latin-5, Thai, Tibetan і Vietnamese

Деякі операційні системи дозволяють вам вказати використовуваний вами мову шляхом установки змінних середовища, що визначають вашу місцевість Emacs може обробляти один поширений окремий випадок: якщо назва вашої регіональної установки для типів знаків містить рядок 8859-n, Emacs автоматично вибирає відповідне мовне середовище

Щоб отримати відомості про ефекти певної мовної середовища язСереда, використовуйте команду Ch L язСереда hRETi  (Describe-language-environment) Це повідомить вам, для яких мов корисна ця мовна середа, і перерахує приходять з нею набори знаків, системи кодування і методи введення Ця команда також показує зразки тексту, які ілюструють використовувані в цьому мовному середовищі системи письма За умовчанням вона описує обрану мовне середовище

Ви можете налаштувати для себе будь-яку мовне середовище за допомогою звичайної пастки

set-language-environment-hook Команда set-language-environment запускає цю ло-

Вушка після підготовки нової мовної середовища Функції цієї пастки можуть визначити поточну мовне середовище за значенням змінної current-language-environment

До початку підготовки нової мовної середовища, команда set-language-environment запускає пастку exit-language-environment-hook Ця пастка корисна для скасування налаштувань, зроблених за допомогою set-language-environment-hook Наприклад, якщо ви встановили з використанням set-language-environment-hook особливі привязки ключів для конкретної мовної середовища, вам варто зробити так, щоб exit-language-environmenthook відновлювала нормальні привязки

184  Методи введення

Метод введення – це різновид перетворення знаків, розроблена спеціально для інтерактивного введення У Emacs, як правило, кожна мова має свій метод введення іноді декілька мов, в яких використовуються одні й ті ж знаки, можуть розділяти один метод введення Є небагато мов, які підтримують кілька методів вводу

У простому випадку метод введення працює через відображення ASCII-букв в іншій алфавіт Таким способом діють методи введення для грецького і російського

Більш потужний спосіб – складання: перетворення послідовності знаків в одну букву Складання використовується в багатьох європейських методах введення для свідомості однієї не-ASCII-букви з послідовності, що складається з літери, за якою йде знак акценту (або навпаки) Наприклад, деякі методи введення перетворять послідовність a в одну букву з акцентом У цих методах введення немає власних спеціальних команд все, що вони роблять, – компонують послідовності друкованих знаків

Методи введення для силлабічеських систем письма зазвичай використовують послідовно відображення і потім складання Таким способом працюють методи введення для тайського і корейського Спочатку букви відображаються в символи окремих звуків або міток тони потім такі послідовності, складові цілий склад, відображаються в один знак складу

Для китайського та японського потрібні складніші методи У китайських методах введення ви спочатку вводите фонетичне написання китайського слова (в методі введення chinese-py, крім інших) або послідовність частин знака (методи введення chinese-

4corner, chinese-sw та інші) Оскільки одне фонетичне написання зазвичай відповідає багатьом різним китайським знакам, ви повинні вибрати одну з альтернатив за допомогою спеціальних команд Emacs Такі ключі, як Cf, Cb, Cn, Cp, і цифри мають у цій ситуації особливі визначення, що використовуються для вибору серед альтернатив hTABi виводить буфер, що показує всі можливі варіанти

У японських методах введення ви спочатку вводите ціле слово, використовуючи фонетичне написання потім, коли це слово вже в буфері, Emacs перетворює його в один або кілька знаків, використовуючи великий словник Одне фонетичне написання відповідає багатьом по-різному записаним японським словами, тому ви повинні вибрати один з них для циклічного проходу по альтернативам використовуйте Cn і Cp

Джерело: Річард Столмен, Керівництво по GNU Emacs

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*