emacs 中使用 ibus 时出现死键

emacs 中使用 ibus 时出现死键

我刚刚升级到 13.10,发现 emacs 中的死键不再起作用(按下 ' 键会导致 emacs 显示<dead-acute> is undefined而不是等待下一个键。此外,使用 compose 键会导致<Multi_key> is undefined无法使用诸如 之类的键绑定<M-^>。据我所知,其他应用程序运行良好。

在互联网上进行简单搜索后,我建议(require 'iso-transl)使用.emacs。这解决了第一个问题,但没有解决其他问题。

网络上看到的另一种可能的解决方法是使用空XMODIFIERS变量启动 emacs,而XMODIFIERS='' emacs不是 ,XMODIFIERS= @im=ibus这似乎是 13.10 中的默认设置。然后一切都正常,但它看起来像一个临时解决方案。有没有办法让 emacs 与 ibus 一起解决这个问题?

更新: 我在 14.04 中观察到了同样的行为。

更新:.dmrc评论中要求的内容:

[Desktop]
Session=xubuntu
Language=fr_FR
Layout=us       intl
Langlist=fr_FR:en
LCMess=fr_FR.UTF-8

答案1

以下是您可以尝试的事情。

编辑文件 ~/.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)

latex-mode如果您在 emacs 中将死键与其他模式一起使用(例如,,,tex-mode... html-mode),则必须将类似的行添加到最后一行。

注销然后重新登录。

即便如此,如果您遇到死键在 emacs 中不起作用的情况,请尝试输入C-\并看看它们是否起作用。

更新:

如果这不起作用,我唯一能想到的就是在系统设置中定义两种键盘布局

  • 英语美国国际死键(您拥有的那个)
  • 美国英语

并按照这里解释的方式添加键盘布局选择器:

如何切换语言键盘组合?

使用 emacs 时,请选择“English US”布局。如果您在文件中添加了.emacs我上面提到的行,这将强制您的键盘在 emacs 中充当“死键键盘”。我知道这可能很烦人,但这是我想到的唯一解决您问题的方法。

相关内容