[求助]在 Emacs 中使用 rime 输入法会阻止 Emacs 退出。

一直在 Emacs 里用 pyim 的 quanpin ,近期系统输入法改用 fcitx5-rime,所以也想将 Emacs 的输入法改为 rime ,确保用户词库一致(也解决一下 pyim 加载词库会顿 Emacs 几秒时间的状况)。使用过程都很正常愉快,但是在退出 Emacs 时会一直停住,这个时候按 C-g 就可以退出。如果不启用 pyim ,Emacs 也能正常退出。

把 pyim 换成 emacs-rime 也是以上情况,使用 emacs -Q 单独加载 emacs-rime 后也是这样。

大家有遇到过吗,有什么解决办法没有。

有关信息如下:

  • 操作系统: Arch Linux;
  • Emacs 版本:GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0);
  • liberime v0.0.6-30-gcc9eb98;
  • emacs-rime v1.0.5-18-gd8c0a99;
  • pyim v5.3.3

试一下 (setq confirm-kill-processes nil)

刚试了,不起作用 :sob: 谢谢!

我帮你 @ 一下 emacs-rime 的作者 @DogLooksGood

这个问题应该不存在,贴一下配置看下。

emacs -Q 启动后加载以下内容:

(add-to-list 'load-path "~/.config/emacs/lib/rime")
(add-to-list 'load-path "~/.config/emacs/lib/dash")
(setq rime-user-data-dir "~/.config/emacs/rime/")
(setq default-input-method "rime")
(require 'rime)

再按 C-\ 切换输入法,然后 C-x C-c 退出 Emacs ,光标就开始转圈圈

退出之前先M-x toggle-debug-on-quit这样再 C-g的时候会弹出backtrace,看看能不能找到什么有用的信息

我这儿是退出的时候segmentation fault了

1 个赞

也是直接就退出 Emacs 了,没有 backtrace ,也没有其他信息。

会不会不是 Emacs 的问题,而是跟 liberime 或者 librime 有关系呀。

我用这里的方法解决了,楼主可以试试

原因应该是librime 这个库调用glog的时候出现并发问题, 我是手动编译librime 同时关闭了glog这个选项,就不会出现这些问题了

感谢!我用 pyim ,改成 (add-hook 'kill-emacs-hook #'liberime-finalize)))可行。

更底层的就不探究了 :crazy_face: ,以上就作为一个变通的解决方法了。

我这边crash 都是提示glog 被多次初始化, 一怒之下,我直接手动编译,关闭了glog :grinning: ,现在非常稳定