понедельник, 7 апреля 2008 г.

Emacs: Работаем с файликами в cp1251

Так случилось, что рабочие проекты у нашей конторы еще с незапамятных времен в cp1251. И переводить их в utf8 напряжно (да и ладно уже, че уж ради меня одного, если всем нормально работается :-)

Вот нашел статью, которая мне помогла: http://emacswiki.org/cgi-bin/wiki/GnuEmacsRussification
Собственно, первую половину того что сказано я не делал (там что-то со словами koi8-r, я боюсь)), а вот второй кусок дописал и все заработало.

Итак, в ~/.emacs дописываем:
;; Create Cyrillic-CP1251 Language Environment menu item
(set-language-info-alist
"Cyrillic-CP1251" `((charset cyrillic-iso8859-5)
(coding-system cp1251)
(coding-priority cp1251)
(input-method . "cyrillic-jcuken")
(features cyril-util)
(unibyte-display . cp1251)
(sample-text . "Russian (Русский) Здравствуйте!")
(documentation . "Support for Cyrillic CP1251."))
'("Cyrillic"))


И теперь у нас есть в Options->Mule->Set Language Environment->Cyrillic->Cyrillic-CP1251. Жмем на него и открываем наши файлики в cp1251. Ура! Еще один шажок к захвату вселенной.

3 комментария:

Павел Вязовой комментирует...

1) Можно в начале файла в комментарии указать его режим и кодировку (правда я синтаксис забыл но могу сходить на фтп к одному клиенту и посмотреть.
Это true-way.

2) Есть какойто кошерный способ изменить кодировку уже открытого файла, но я его забыл, поэтому по старинке пользуюсь функцией Алекса Отта.

http://pastie.caboo.se/paste/176648
Одна функция перекодирует ридонли файл, другая обычный.

(Кстати функции на pastie запостил тоже из емакса - выделил их и сделал pastie-region, проще небывает)

kost BebiX комментирует...

@Vyazovoi Pavel
Вариант 1 - врят ли устроит. Там ведь php-файлы в основном, так что будет не так парситься.
Вариант 2 интересен, но все же мне мой вариант пока больше всего нравится. Начинаешь работать - вруби cp1251. Окончил - выруби.

p.s.: ушел осиливать php-mode, так как непривычен он как-то и совсем пока мне не нравится. python-mode куда лучше работает.

Unknown комментирует...

спасибо