emacs

Из вопросов, связанных с локализацией, почему-то нигде не рассмотрен emacs (я имею в виду соответствующие разделы в документации и Gentoo-wiki).

Самый главный вопрос -- не работает переключение на русский язык по Ctrl-\ -- выдается сообщение activate-input-method: Can't activate input method `cyrillic-jcuken'.

Ну и вообще, кто какие конфиги для кириллизации использует, как решает проблемы со шрифтами?

Я использую найденный для koi8 конфиг, в котором постарался все koi8 заменить на utf8. Сам я большую часть этого не понимаю, и подозреваю, что не все здесь правильно (если все вообще не является бредом)

(set-language-environment 'UTF-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'koi8-r)
(put-charset-property 'cyrillic-iso8859-5 'preferred-coding-system 'utf-8)
(codepage-setup 1251)
(define-coding-system-alias 'windows-1251 'cp1251)
(set-input-mode nil nil 'We-will-use-eighth-bit-of-input-byte)
(setq-default coding-system-for-read 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'windows-1251)
(prefer-coding-system 'koi8-r)
(prefer-coding-system 'utf-8)

Что нужно сделать, чтобы можно было вставлять русский текст из буфера обмена?

При запуске у меня в иксах был совершенно кривой шрифт. Погуглив, нашел такое решение

Цитата:
Для того чтобы emacs правильно показывал кириллицу при работе в UTF-8, можно добавить строчку в ~/.Xresources:

Emacs*font: -*-*-medium-r-*-*-13-*-*-*-*-*-iso10646-1
или указать шрифт явно через опцию -fn:

emacs -fn -*-*-medium-r-*-*-13-*-*-*-*-*-iso10646-1

Как бы этот шрифт прописать в ~/.emacs? Какие еще могуть быть шрифты?

>>Какие еще

>>Какие еще могуть быть шрифты?
Какие поставил :). Поиграйся с xfontsel, оно у всех есть, кажется идет в составе иксов.

Что-то особого

Что-то особого внимания к emacs тут не наблюдается :(

Я в общем-то более-менее разобрался, могу даже HOWTO написать. Вот только проверку русской орфографии прикрутить не получается.

У меня

У меня наблюдается. Периодически пинаю emacs (xemacs жутко не понравился, снес) c разных сторон. Отладка и все такое. Прикольно. Пытаюсь ответить на извечный вопрос "А оно мне надо?". На лоре в документации надысь нарыл русский инфо, зело помогает. А приличный хауту по емаксу написать нереально, бо получится инфо от и до :)

Ну хотя бы по

Ну хотя бы по русификации... Потому доки о русификации emacs'а есть, но они в основном для koi, и не разъясняют, как юзать с ним aspell

Ага,

Ага, разобрался. Ну, если кому-то нужна дока по тому, как приручить emacs-cvs к utf-8, я могу через недельку-две написать руководство

а что там не

а что там не понятного?..

Напиши

Напиши пожалуйста, все тебе очень благодарны будут :)
Куда выложишь и когда скажешь?

Как сдам

Как сдам сессию, следите за анонсами :)

Пока что вот вам мой ~/.emacs.d/init.el, правда, тут еще возможно что-то придется править

Еще раз обращаю внимание: у меня emacs-cvs-22.0.50!

;; Localization
(set-language-environment 'UTF-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

(codepage-setup 1251)
(define-coding-system-alias 'windows-1251 'cp1251)
(codepage-setup 866)

(prefer-coding-system 'cp866)
(prefer-coding-system 'windows-1251-dos)
(prefer-coding-system 'koi8-r-unix)
(prefer-coding-system 'utf-8-unix)

(setq default-input-method 'russian-computer)

;; spelling
(setq ispell-dictionary "ru")
(add-hook 'text-mode-hook
  '(lambda () (flyspell-mode 1)))

А можно

А можно дурацкий вопрос?

Почему в твоей UTF8 локали первая предпочитаемая кодировка не utf-8? Разве не логично начинать постепенно использовать эту кодировку как основную?

prefer-coding-system

prefer-coding-system помещает кодировку в НАЧАЛО списка предпочитаемых кодировок

И кстати, у меня все никак не дойдут руки проверить, как работает автоопределение кодировок с этим конфигом на файлах с koi/win/dos

o

o

HOWTO обещанный и долгожданный :)

а можно что-нибудь сделать с клавиатурными сокращениями?

Ну то есть если я в русской раскладке, то чтобы все равно работали всякие там C-x C-f?

Можно.

Можно. Переключайся на русский с помощью ctrl-\. Естественно, сначала нужно сделать всё по статье на вики

А нельзя это на

А нельзя это на capslock повесить?

Надысь

Надысь пришлось юзать емакс с консоли, и писать на ем русские буки. Локаль ессно кои. Ну и напоролся на вилы коих под иксами нет.

Во первых оно не переключалось по контрол шифт (как все остальное консольное). Ранше глюк не замечал , бо под иксами пашет как миленький. Вычитал волшебную комбинацию Ctrl-\
Пришлось вернуться к истокам:

>>Самый главный вопрос -- не работает переключение на русский язык по >>Ctrl-\ -- выдается
>>activate-input-method: Can't activate input method `cyrillic-jcuken'.

Это как раз из за кривой сборки

emerge -pv emacs

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] app-editors/emacs-21.4-r4 USE="X -leim nls -Xaw3d -lesstif -motif -nosendmail" 0 kB

За локализацию отвечают 2 флага nls (муле) и leim (это тот самый пресловутый input metod). Некоторые утверждают что лейм вроде как не нужен потому как муле есть. Врут. О чем собсно и гласит info emacs. Лейм это отдельный пакет. Весит три метра. Собсно он эти инпут методы и определяет. После пересборки с mule и leim ошибка по Ctrl-\ исчезла, и все стало переключаться как надо.

Осталась еще одна проблема (вопросики вместо русских букв). Опять же проявилась в консоли, то бишь под иксами ее не видно. Это от того что koi однобайтная кодировка. Исправляется параметрами запуска --unibyte.

emacs --unibyte

В общем все.

Leim не нужен

Leim не нужен. В нём, как я понял, только определения раскладок клавиатуры, причём на кучу языков. При этом там нет виндовой раскладки (т.е. где точка возле shift-а) (хотя, может уже добавили)

Лучше просто определить в .emacs:

;; windows keymapping
(quail-define-package
 "cyrillic-jcuken-win" "Cyrillic" "RU" nil
 "ЙЦУКЕН + windows keymapping"
 nil t t t t nil nil nil nil nil t)

;;  1! 2" 3# 4; 5% 6: 7? 8* 9( 0) -_ =+ Ё
;;   Й  Ц  У  К  Е  Н  Г  Ш  Щ  З  Х  ъ
;;    Ф  Ы  В  А  П  Р  О  Л  Д Ж  Э
;;     Я  Ч  С  М  И  Т  Ь  Б  Ю  .,

(quail-define-rules
 ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5)
 ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0)
 ("-" ?-) ("=" ?=) ("`" ?ё) ("q" ?й) ("w" ?ц)
 ("e" ?у) ("r" ?к) ("t" ?е) ("y" ?н) ("u" ?г)
 ("i" ?ш) ("o" ?щ) ("p" ?з) ("[" ?х) ("]" ?ъ)
 ("a" ?ф) ("s" ?ы) ("d" ?в) ("f" ?а) ("g" ?п)
 ("h" ?р) ("j" ?о) ("k" ?л) ("l" ?д) (";" ?ж)
 ("'" ?э) ("\\" ?\\) ("z" ?я) ("x" ?ч) ("c" ?с)
 ("v" ?м) ("b" ?и) ("n" ?т) ("m" ?ь) ("," ?б)
 ("." ?ю) ("/" ?.) ("!" ?!) ("@" ?\") ("#" ?#)
 ("$" ?\;) ("%" ?%) ("^" ?:) ("&" ??) ("*" ?*)
 ("(" ?() (")" ?)) ("_" ?_) ("+" ?+) ("~" ?Ё)
 ("Q" ?Й) ("W" ?Ц) ("E" ?У) ("R" ?К) ("T" ?Е)
 ("Y" ?Н) ("U" ?Г) ("I" ?Ш) ("O" ?Щ) ("P" ?З)
 ("{" ?Х) ("}" ?Ъ) ("A" ?Ф) ("S" ?Ы) ("D" ?В)
 ("F" ?А) ("G" ?П) ("H" ?Р) ("J" ?О) ("K" ?Л)
 ("L" ?Д) (":" ?Ж) ("\"" ?Э) ("|" ?|) ("Z" ?Я)
 ("X" ?Ч) ("C" ?С) ("V" ?М) ("B" ?И) ("N" ?Т)
 ("M" ?Ь) ("<" ?Б) (">" ?Ю) ("?" ?,)
 )

- это то же, что и в Leim, тока немного подредактированное.

Лично мне кажется - так проще. Места меньше займёт. Всё в вашем личном конфиге. И под другими операционками) сразу будет работать (могут быть только проблемы из-за кодировки самого конфига, - перекодируйте по аналогии с файлами Leim)

В 22 версии это

В 22 версии это уже есть
(setq default-input-method 'russian-computer)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".