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



         

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


А второй – задать соответствующую ему клавиатурную раскладку: kbdcontrol -l ru.cp1251.kbd

Разумеется, для того, чтобы сварить суп из курицы, нужно как минимум иметь курицу. То есть, применительно к случаю – соответствующие экранные шрифты и клавиатурные раскладки. Благо с первыми проблем нет – в комплект FreeBSD входят консольные шрифты для всех трех главных кодировок русского языка (хотя эстетически, да и эргономически, все они далеки от совершенства).

Для тех, которые с претензиями (как ваш покорный слуга, например) – шрифты для консоли FreeBSD можно изготовить из таковых для Linux-консоли, в отечественные дистрибутивы типа Altlinux входит прекрасная их коллекция  . Для этого Linux'овый шрифт сначала разархивируется, а затем дается команда типа dd if=linux_font.psf of=bsd_font.fnt bs=1 skip=4 count=4096

где значение count приведено для шрифта стандартного (80x25) разрешения размером 8x16. Однако теоретически можно сделать и шрифт для высокого разрешения – 8x8. А если исходный шрифт – Unicode (а в дистрибутивах Linux есть и такие), то, вычислив смещение, можно изготовить буковки в любой кириллической кодировке. Впрочем, каюсь, я в вычислениях запутался – нормально у меня получились только фонты 8x16 для CP866  .

С клавиатурными раскладками – несколько хуже: во FreeBSD они имеют место быть только для KOI8 и CP866, но не для CP1251. В Сети последних для Free (а по формату они немного другие, чем для Linux) я тоже не нашел. Осталось изготовить эту раскладку собственноручно – заодно и с переопределением всяких Win-клавиш по собственному разумению  .

Наконец, если нет желания менять экранные шрифты, той же командой vidcontrol в форме vidcontrol -l *.scm

можно подгрузить и требуемую карту соответствия. Опять же, если таковая имеется – а штатно она есть только для KOI8 -> CP866. Но и тут принципиальных сложностей не предвидится – с помощью толики терпения и чьей-то матери нужную карту можно склепать вручную.

Однако и средства syscons – не панацея от всех бед. Главный их недостаток – переключение шрифта, раскладки и таблицы соответствия между ними действует на все виртуальные консоли сразу. И потому мечта – сочинять текст в KOI8, время от времени просматривая документы, сохраненные в CP1251, – имеет шанс так и остаться мечтой. А уж о том, чтобы таскать между ними фрагменты, казалось бы, можно забыть.

Можно – если бы не открытие на сайте винницкой фирмы замечательной программки mapchan, позволяющей (цитирую README) «произвольным образом преобразовывать терминальный ввод-вывод». И дающей, таким образом, возможность работать на различных виртуальных консолях с документами в любых кодировках (в общем случае – не только кириллицы, и не только на локальной машине, но и с удаленных терминалах, но этот аспект я затрагивать не буду).

Программа (автор ее представляется как Yura Kalinichenko) являет собой модернизацию одноименной утилиты из SCO Unix и написана, судя по всему, под Linux. Однако ничего Linux-специфичного не содержит и потому должна работать под любым Unix'ом. За любой – не скажу, но под FreeBSD она устанавливается без проблем и работает прекрасно.

Установка ее – стандартна, распаковывается архив и от имени root'а даются команды make make install




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