之前我一直使用的是 pyim,见 Mac 版 Emacs 中使用 Rime 输入法打带调双拼。前段时间手贱把 Mac 升至 Catalina 后,Emacs 便出现了各种各样的问题。捣鼓了一圈后发现了一个致命问题,那就是我对 pyim 的双拼定义不管用了。捣鼓了许久,都没搞明白原因是什么。不过 pyim 本身也有一些缺陷,安装复杂,和鼠须管并非无缝衔接,打字有卡顿,缓存限制对生僻字不友好,我的带调双拼也需要在 init 中另行设置,所以在发现 emacs-rime 后,我便起了换个轮子用的想法。

emacs-rime 的安装非常简单,从 rime/librime 那儿下了最新的 Release 并解压至 ~/.emacs.d/librime 即可。更棒的是,由于 emacs-rime 仅仅是 rime 在 emacs 中的前端,所以其体验与鼠须管是完全一致的。也就是说,我再也不用为了实现带调双拼而写一个专用的 schema 并在 init 中另行设置了,而用起方言输入法也是顺滑非常。另外,在中英文混输时,也不需要切换输入法了,超级棒。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
(use-package rime
  :custom
  (default-imput-method "rime")
  (rime-librime-root (expand-file-name "librime/dist" user-emacs-directory))
  (rime-show-candidate 'posframe)
  (rime-share-data-dir "~/Library/Rime")
  (rime-user-data-dir "~/Library/Rime")
  (rime-posframe-properties
   (list :background-color "#073642"
         :foreground-color "#839496"
         :internal-border-width 1))
  :config
  (set-face-attribute 'rime-default-face nil :foreground "#839496" :background "#073642")
  )

从 pyim 转至 emacs-rime 有个坑,那就是需要清除之前安装的 pyim 及 liberime,否则 posframe 的设置会无效。我一开始没有删掉 liberime,结果一直没办法配置 posframe 的对话框,弄了好几个小时,一度以为 posframe 和 doom-themes 有冲突。

另外超级棒不等于完美,我现在的 emacs-rime 配置还是有一些问题的。一是词库并不能和系统共享。二是 emacs-rime 调用的 posframe 打字时当前 buffer 会处于一种 lost focus 的状态,整体会在当前选择前景色的基础上变暗一点点。这样随着 posframe 的出现与消失,文字区域一闪一闪地眼睛非常不适。三是即使我设置了 default 为 rime,重启 Emacs 后仍然需要手动选择,非常奇怪。后两个问题 pyim 都没有,所以应该还是 emacs-rime 的问题。