Sep
18

Настройка русского языка в emacs

Author osya    Category Uncategorized     Tags

При начале работы с 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 описание кодировки

Post comment