18-10-2003, 00:00.

Хотя для большинства программ вполне достаточно установки LANG=ru_RU.KOI8-R чтобы начать распознавать русские буквы, многие программы, основанные на библиотеке readline (например bash), все равно считают символы с кодами больше 128 особыми META-символами (пищит при вводе). Чтобы отучить библиотеку readline от этого, необходимо определить переменную
    INPUTRC=/etc/inputrc
Кроме того, создать файл /etc/inputrc
    set meta-flag on set convert-meta off set output-meta on
После этого библиотека readline (и bash) начнет воспринимать русские буквы. Еще один вариант : Не задавать INPUTRC=, а прописать те же значения в файл ˜/.inputrc (в home-каталоге). Но тогда придется заводить такой файл в домашнем каталоге каждого пользователя. См. man readline.


18-10-2003, 00:00.

В принципе, она должна "унаследоваться" от системной локали, LANG=ru_RU.KOI8-R (или ru_RU.UTF-8) Если не выходит, попробуйте :
    $ java -Duser.language=ru -Duser.region=RU -Dfile.encoding=koi8-r


18-10-2003, 00:00.

Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:
    SYSFONT=UniCyr_8x16 SYSFONTACM=koi8-r LANG=ru_RU.KOI8-R
Раскладка клавиатуры выбирается утилитой kbdconfig и прописывается в файл /etc/sysconfig/keyboard, в виде:
    KEYTABLE=ru1
Эти файлы используются в скриптах /etc/rc.d/rc.sysinit, /sbin/setsysfont. Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если возникли вопросы или проблемы.


18-10-2003, 00:00.

Debian 2.2: Насторойка фонтов запускается из /etc/init.d/console-screen.sh /etc/console-tools/config:
    # SCREEN_FONT=Cyr_a8x16 APP_CHARSET_MAP=koi8-r # APP_CHARSET_MAP_vc2=koi8-r APP_CHARSET_MAP_vc3=koi8-r APP_CHARSET_MAP_vc4=koi8-r APP_CHARSET_MAP_vc5=koi8-r APP_CHARSET_MAP_vc6=koi8-r
Фонты нужно заменить, взяв правильные из console-tools-cyrillic. Клавиатура настраивается из /etc/init.d/keymaps-lct.sh и загружает раскладку /etc/console-tools/default.kmap.gz Именно под этим именем нужно разместить требуемую раскладку или создать symlink. Для интерактивного выбора клавиатуры есть полезная утилита: kbdconfig. /etc/environment:
    LANG=ru_RU.KOI8-R


18-10-2003, 00:00.

В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем X сервере) запустите :
    $ xlsfonts -fn "*-koi8-r"
Если список не пустой - примите наши поздравления :-) Начиная с версии XFree86 3.3.2 русские фонты cronyx-* входят прямо в дистрибутив XFree. Если фонтов нет -- их нужно установить. Для Red Hat просто поставьте пакет XFree86-cyrillic-fonts-XXXX.rpm . Фонты установятся в /usr/X11R6/lib/X11/fonts/cyrillic . Далее нужно подключить шрифты к X Window. Убедитесь, что в файле /etc/X11/XF86Config прописан путь :
    Section "Files" ... FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" ... EndSection
Путь с cyrillic лучше всего поставить первым. Перезапустите X сервер и проверьте командой : xlsfonts -fn "*-koi8-r" . Еще см. вопрос "Где найти хорошие русские шрифты для иксов?" Про подключение шрифтов TrueType также имеется отдельный ответ, в разделе про X Window. Хорошим решением также будет использование фонт-сервера. Во-первых, он может быть один на всю организацию, а во-вторых в современные фонт-серверах можно использовать шрифты TrueType. Для Red Hat фонт-сервер xfsft входит в пакет XFree86-xfs. dcs.ed.ac.uk/home/jec/programs/xfsft/


18-10-2003, 00:00.

Существует два основных способа русификации клавиатуры X :

XKB, применяющийся в современном X11R6

xmodmap, применявшийся в X11R5 При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть прописано:
    Section "Keyboard" ... XkbRules "xfree86" XkbModel "pc101" XkbLayout "ru" XkbOptions "grp:shift_toggle" EndSection
Для X 4.0.x
    Section "InputDevice" ... Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc101" Option "XkbLayout" "ru" Option "XkbOptions" "grp:shift_toggle" EndSection
В зависимости от клавиатуры опция Model может быть "pc101", "pc104" или "pc105", а комбинации переключения:
    grp:toggle правый Alt (с "фиксацией") grp:caps_toggle Caps_Lock grp:shift_toggle два Shift grp:ctrl_shift_toggle Control+Shift grp:ctrl_alt_toggle Control+Alt
Для 4.0.x добавились новые :
    grp:alt_shift_toggle Alt+Shift grp:menu_toggle Menu (модель должна быть pc104, pc105)
В XFree 4.3 (и 4.2.99 также) изменились правила настройки Xkb. Каждая layout теперь содержит только один вариант клавиатуры. Поэтому выбор xkbLayout "ru" не позволяет вводить английские буквы. Зато повилась возможность комбинировать больше двух раскладок, просто через запятую. Правильная настройка xkb может выглядеть следующим образом:
    Section "InputDevice" Identifier "Keyboard0" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbModel" "microsoft" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection
И еще. поэкспериментировать с настройками xkb "на ходу" можно с помощью команды
    $ setxkbmap -layout -us,ru(winkeys)- -model microsoft -option grp:ctrl_shift_toggle
В этом случае изменения коснутся только порожденных окон. Если есть проблемы с XKB, прочтите tsu.ru/~pascal/other/xkb/ Там же есть ссылки на "переключатели клавиатуры", например xxkb, описание, как использовать несколько раскладок одновременно, назначать клавиши переключения раскладок и много других интересных вещей. Наиболее развитая программа для переключения клавиатуры через способ xmodmap : xruskb от "Alexander V. Lukaynov" mailto:lav@yars.free.net ftp://ftp.yars.free.net/pub/software/unix/X11/ (primary site) ftp://ftp.relcom.ru/pub/x11/cyrillic/ Она может понадобиться для русификации X11R5 терминалов, например железных, или эмуляторов под MS Windows. Для ее применения с XFree86 лучше отключить модуль XKB в /etc/X11/XF86Config директивой XkbDisable. Правильная раскладка для xruskb: jcukeng-cyr.xmm Проверить русификацию X можно программой xev: клавиатура должна генерировать правильные XkeySym для кириллицы (0x6xx), а xev должна показывать Cyrillic_IE и пр. при нажатии русских букв, а не OCyrcumflex e.t.c.


18-10-2003, 00:00.

Для vfat примерно так (cтрочка из /etc/fstab/):
    /dev/hda5 /mnt/d vfat noexec,rw,umask=002,codepage=866,iocharset=koi8-r,gid=100 0 0
Потом mount /mnt/d. Еще в ядро (>=2.0.36) должны быть включены соответствующие кодовые страницы (возможно, в виде модулей /lib/modules/`uname -r`/fs/nls_*) - CP866 и KOI8-R, так что возможно (хотя скорее всего нет) ядро придется перекомпилировать. Для CD, содержащего файлы с русскими именами:
    $ mount -t iso9660 -o iocharset=koi8-r /dev/cdrom /mnt/cdrom
Параметр codepage для isofs не нужен, в файловой системе JOLIET имена файлов хранятся в UNICODE. Смысл этих опций можно узнать в -man mount- или в документации исходников ядра /usr/src/linux/Documentation/filesystems/ или /usr/doc/kernel/filesystems/


18-10-2003, 00:00.

Для сервера добавить в /etc/smb.conf
    [global] character set = koi8-r client code page = 866 preserve case = yes short preserve case = yes default case = lower mangle case = no
Чтобы правильно монтировались smb разделы надо при компиляции ядра указать (ядро должно быть >=2.2.20 )
    CONFIG_NLS_DEFAULT="koi8-r" CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp866" CONFIG_SMB_NLS=y CONFIG_NLS=y


18-10-2003, 00:00.

Перекодировщиков CP1251 и CP866 --> KOI8-R просто огромное количество. Не надо писать новых ;-) Наиболее широко распространены iconv (входит в поставку glibc) и GNU recode (ftp://prep.ai.mit.edu/pub/gnu/recode/)
    $ iconv -f866 -tKOI8-R -o infile $ recode CP1251..KOI8-R winfile.txt
Еще один URL для recode - iro.umontreal.ca/~pinard/recode/. Перекодировщик русского текста с автоматическим определением исходной кодировки: ftp://oskin.macomnet.ru/pub/linux/misc/xcode.c В конце концов сгодится обычный lynx :
    $ lynx -assume_local_charset cp866 file.txt


18-10-2003, 00:00.

    :e ++enc=cp1251 winfile.txt
Загрузить файл, считая, что он в указанной кодировке, и перекодировать его в кодировку, в которой работает редактор.


18-10-2003, 00:00.

VIM должен быть версии 6.x и собран с поддержкой Multibyte:
    configure --with-features=huge --enable-multibyte
Предположим, консоль русифицирована в KOI8-R, тогда в VIM надо дать команды :
    :set encoding=utf-8 :set fileencoding=utf-8 :set termencoding=koi8-r
В RedHat VIM разнесен на несколько пакетов.
    vim-common-6.1-2 vim-minimal-6.1-2 vim-enhanced-6.1-2
Редактор vi, входящий в vim-minimal собран без Multibyte, vim из vim-enhanced -- с поддержкой. Надо пользоваться редактором vim.


18-10-2003, 00:00.

Во-первых, нужно взять GoldEd+ c golded-plus.sourceforge.net. Кроме того, нужно взять таблицы перекодировки (например из пакета русификации, проходившего по файлэхе aftnged и лежащего на collage.etel.ru/fileechos/ftn/ и прописать их в golded.cfg, примерно так:
    AREAPATH /mnt/c/fido/fecho/ AREAFILE FastEcho XLATPATH /home/ak/.golded/chars XLATLOCALSET KOI8 XLATIMPORT IBMPC XLATEXPORT IBMPC XLATCHARSET KOI8 IBMPC koi_866.chs XLATCHARSET IBMPC KOI8 866_koi.chs IGNORECHARSET


18-10-2003, 00:00.

Можно. F9 - options - display bits - Full 8 bit В последних версиях -mc- появилась поддержка различных Charset-ов . Эта опция должна быть включена при компиляции -mc- .
    $ ./configure --enable-charset ....


18-10-2003, 00:00.

Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org пишет: при настроенной локали указывать LESSCHARSET _HЕ HАДО_. Более того, в ˜/.lesskey надо добавить
    #env LESSCHARSET=
чтобы он игнорировал установку LESSCHARSET= глупыми программами (к примеру, man :) [после этого надо запустить lesskey для получения бинарного файла ˜/.less] В противном случае он не будет вызывать setlocale(LC_CTYPE,"") и, как следствие, не будет icase search для русских букв.


18-10-2003, 00:00.

Если возникают проблемы с вводом русских символов, надо написать файлик ˜/.telnetrc со следующей строкой:
    DEFAULT set outbinary
Вы можете встретить проблемы при работе в кодировке Win-1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. В KOI8-R такой проблемы нет.


18-10-2003, 00:00.

Скорее всего на консоль был скопирован какой-то двоичный файл, где случайно встретилась переключающая ESC-последовательность. Тогда : Сброс терминала :
    $ echo -ne "33c"
набрать вслепую, или с работающей консоли :
    # echo -ne "33c" >/dev/ttyX
Переключение на downloaded font
    $ echo -ne "33(K"
(возможно, еще придется перегрузить фонты, но это смотря как консоль сорвало...) Если вывалилась какая-то программа, которая использует curses, то проще
    $ stty sane
В Red Hat все это делают reset; setsysfont <ctrl-j> reset - из ncurses См. -man console_codes- и -man stty-


18-10-2003, 00:00.

Все вопросы по TeX рекомендуется задавать в ru.tex. FAQ из этой конференции и прочая информация по TeX в России находятся по адресу myke.webjump.com/tex/. TeX и LaTeX во всех современных дистрибутивах говорят по-русски с раздачи. В этом случае имеется документ cyrguide.*, который и содержит развернутый ответ на вопрос о русификации TeX. Переносы не всегда работают "из коробки", иногда надо поправить language.dat, и пересобрать форматы. Вот что пишет Alex Nikiforov: Если уж о последних версиях, то в RH-6.0 с tetex 0.9 у меня получилось так:
    $ texconfig
выбрать
    hyphenation -> latex
раскомментировать russian Добавить в LaTeX файлах
    usepackage[T2A]{fontenc} usepackage[koi8-r]{inputenc} usepackage[english,russian]{babel}
и в файле можно переключаться между русским и английским командами Russian и Engish Что бы добавить форматы из cyrplain набора в texconfig выбрать FORMATS и добавить
    cyrtxinf tex language.dat cyrtxinf.ini
для русского texinfo. Аналогично для cyrblue и cyramstx. Что бы добавить формат cyrtex ( русский TeX ) проще в каталоге web2c выполнить:
    initex -input cyrtex.ini dump-
и бросить символическую ссылку с именем cyrtex на tex ( например в /usr/bin ) Что бы переключится на русский в этих plain форматах использовать команду
    language N
где N - номер, под которым числится русский язык в получившейся раскладке. В принципе можно заменить в конфигурации ruhypen на ruenhyp и оставить только совместные русско-английские правила переноса, но детально это не проверял и подробно описать не могу.

Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.