Emacs для начинающих



         

Кодируем помаленьку - часть 5


Правда, при этом свой исполнимый файл (mapchan же) записывается непосредственно в каталог /bin, а дополнительные компоненты (в частности, собственно таблицы перекодировки ввода/вывода – map-файлы) предлагается руками положить в каталог /etc/mapchan. Если это почему-либо не устраивает – можно обойтись без make install и вручную расписать их куда угодно (например, как $HOME/bin/mapchan и т.д.). Далее программа запускается следующим образом mapchan -s [shell] -f /path/file.map

после чего в текущей консоли грузится указанная опцией -s оболочка, в которой можно наслаждаться чтением и писанием русских текстов в той кодировке, которая определена заданным через опцию -f map-файлом, вне зависимости от того, какая кодировка определена для системы в целом. При этом не затрагиваются ни клавиатурные раскладки (все буквы находятся на тех же местах, что и раньше), ни их переключатели (кириллица/латиница переключаются тем же способом), ни экранные шрифты (вид их остается неизменным). Боле того, все прочие консоли сохраняют общесистемную кодировку. И выделенный мышью фрагмент в консоли с KOI8 в правильном виде вставляется на консоль с Win- или DOS-кодировкой.

Красота, да и только… Дело за малым – обзавестись достаточным количеством map-файлов для всех требуемых случаев. В комплекте таковые имеются для работы с DOS-кодировкой в KOI'шном терминале, и с кодировкой KOI8-U при терминалах с альтернативным DOS (он же – CP866) и с кодировкой ГОСТ'а. Есть и вариант для некоего терминала СМ7238 – я с таким не сталкивался.

А вот самый актуальный ныне случай – для работы с CP1251 при KOI-терминале, – не представлен. Изготовлением соответствующего map-файла следует озадачиться самостоятельно. Благо вследствие формата map-файла это просто: определяются две секции – input и output, которые заполняются соответствиями символов «кто -> во что преобразуется» (очевидно, что содержание секций представляет собой зеркальное отражение). При этом и исходный, и преобразуемый символы могут быть заданы почти любым образом – восьмеричными, шестнадцатеричными или десятичными их кодами, а то и просто символами, заключенными в одинарные кавычки (и даже без оных). Для удобочитаемости символы могут разделяться пробелами (а могут и не разделяться).

Иными словами, берутся любые требуемые кодовые таблицы и перекраиваются требуемым образом. Если же и это лениво – map-файлы для случая Windows и DOS на KOI-терминале можно взять у меня  . И вызывать их указанным выше образом при необходимости.




Содержание  Назад  Вперед