Настройка русского языка в emacs
При начале работы с Emacs в Windows часто возникает проблема с кодировками (символы кириллицы отображаются некорректно).
Разберемся как настроить корректное отображение символов кириллицы в shell, который вызывается из EmacsW32. Я в emacs использую два shell – cygwin bash по умолчанию и cmd shell.
Напомню, что запуск shell’а по умолчанию осуществляется командой M-x shell. А запуск cmd shell – командой M-x cmd-shell.
Shell – это отдельный процесс. Поэтому, для корректного отображения символов кириллицы в shell в emacs необходимо использовать функцию set-buffer-process-coding-system.
Интерактивно изменить кодировки процессов в emacs можно с помощью команды C-x <Ret> p. Интерактивно удобно подбирать кодировку, которая будет корректно отображать кириллицу для данного процесса.
После того, как вы определили какая кодировка вам нужна можно внести изменения в файл инициализации. Привожу фрагмент своего файла ~/.emacs.d/init.el:
(defadvice shell (after my-shell-advice)
(set-buffer-process-coding-system 'utf-8 'undecided-unix))
(ad-activate 'shell)
(defadvice cmd-shell (after my-cmd-shell-advice)
(set-buffer-process-coding-system 'cp1251 'undecided-unix))
(ad-activate 'cmd-shell)
Теперь после перезапуска emacs и в cygwin bash, и в cmd символы кириллицы будут отображаться корректно.
PS. И напоследок привожу две полезные команды:
- M-x list-coding-system выводит список кодировок
- M-x describe-coding-system описание кодировки


osya





