Мертвые ключи в emacs с ibus

13

Я только что обновился до 13.10 и заметил, что мертвые ключи больше не работают в emacs (нажатие клавиши приводит к отображению emacs <dead-acute> is undefinedвместо ожидания следующей клавиши. Кроме того, использование клавиши compose приводит к <Multi_key> is undefinedневозможности используйте привязки клавиш, например <M-^>. Другие приложения работают нормально, насколько я могу судить.

Поиск краток в Интернете предлагается (require 'iso-transl)в .emacs. Это решает первую проблему, но не другие.

Еще один возможный обходной путь, встречающийся в Интернете, - запускать emacs с пустой XMODIFIERSпеременной, поскольку XMODIFIERS='' emacsвместо XMODIFIERS= @im=ibus13.10 он кажется значением по умолчанию. Тогда все работает нормально, но выглядит как бред. Есть ли способ заставить emacs работать с ibus на эту тему?

Обновление: я наблюдаю такое же поведение в 14.04.

Обновление: содержание, .dmrcкак просили в комментариях:

[Desktop]
Session=xubuntu
Language=fr_FR
Layout=us       intl
Langlist=fr_FR:en
LCMess=fr_FR.UTF-8
Virgile
источник
Правильное название пакета iso-transl(обратите внимание на тире.)
Lars Haugseth
@LarsHaugseth хорошо заметили, спасибо. Я отредактировал вопрос соответственно.
Virgile
Я использую Emacs с мертвыми клавишами AltGr, и он работает нормально.
Чаро
Какая версия Emacs у вас есть?
Чаро
@Charo GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK + версия 3.10.7) от 2014-03-07 на lamiak, измененный Debian. У меня все еще есть эта проблема в 14.04, я обновлю вопрос соответственно
Virgile

Ответы:

2

Вот что вы можете попробовать.

Отредактируйте файл ~ / .dmrc и убедитесь, что на нем установлены следующие строки:

Language=en_US.utf8
Langlist=en_US:en
LCMess=en_US.UTF-8

Отредактируйте файл ~/.emacsи добавьте в него эти строки вместо (require 'iso-transl) :

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-input-method "latin-1-prefix")
(defun my-set-default-input-method ()
  (set-input-method 'latin-1-prefix))
(add-hook 'text-mode-hook 'my-set-default-input-method)

Вы должны добавить подобные строки до последней , если вы используете мертвые клавиши с другими режимами в Emacs (например, latex-mode, tex-mode, html-mode...).

Выйдите, а затем войдите снова.

Тем не менее, если вам когда-нибудь случится, что мертвые ключи не будут работать в emacs, попробуйте набрать C-\и посмотреть, работают ли они.

Обновить:

Если это не сработает, единственное, что мне приходит в голову, это то, что вы определяете две раскладки клавиатуры в настройках вашей системы.

  • Английский США международные мертвые ключи (тот, который у вас есть)
  • Английский США

и добавьте селектор раскладки клавиатуры, как описано здесь:

Как поменять язык комбинации клавиш?

Когда вы работаете с emacs, выберите макет "English US". Если вы добавили в свой .emacsфайл строки, которые я упомянул выше, это заставит вашу клавиатуру вести себя как «клавиатура мертвых клавиш» в emacs. Я знаю, что это может раздражать, но это единственное решение вашей проблемы, которое приходит мне в голову.

Чаро
источник
Я добавил эти строки, но это ничего не меняет. Ни один не делает `C-`. В любом случае, спасибо за предложения.
Virgile
Попробуйте изменить некоторые строки в вашем файле ~ / .dmrc, как указано в моем ответе.
Чаро
Но разве это не означает, что язык моей сессии будет английский?
Virgile
@Virgile: Но посмотрим, исчезнет ли проблема таким образом. После этого вы всегда можете вернуться к своей французской локали, снова изменив файл ~ / .dmrc. Я прочитал это здесь .
Чаро
@Virgile: см. «Обновление» моего ответа.
Чаро