emacs-rime 配合雾凇拼音

Emacs 下一直都在用狗哥写的emacs-rime输入法来输入中文,但是 rime 默认的词库非常一般, 导致我们在 Emacs 输入中文的时候并没有使用外部输入法那么流畅。

今天主要介绍, 怎么在 Emacs 中安装 emacs-rime 并结合 雾凇拼音 来达到流畅的中文输入体验。

安装 RIME 输入法

使用下面的命令先安装 fcitx5 输入法框架和 rime 相关的代码库(下面安装 emacs-rime 会用到)

sudo pacman -S fcitx5-rime librime

安装雾凇拼音

使用下面的命令拷贝雾凇拼音所有的 rime 配置到 fcitx 的 rime 配置目录下

git clone https://github.com/iDvel/rime-ice --depth=1
cp -r ./rime-ice/* ~/.config/fcitx/rime/

注意, rime 配置文件非常娇气(主要是配置文件不能错一个空格), 建议先把 ~/.config/fcitx/rime/ 目录下所有文件备份后再删除干净后再把 rime-ice 所有配置都拷贝进去。

句号翻页

我比较喜欢用逗号或句号翻页, 下面是详细的设置方法: 找到 ~/.config/fcitx/rime/default.yaml 文件中的 - { when: paging, accept: comma, send: Page_Up }- { when: has_menu, accept: period, send: Page_Down } 内容, 去掉注释。

同时 grep ~/.config/fcitx/rime/ 目录, 把所有 url_2 开头的行的前面都加一个 # 符号注释掉。

安装 posframe

posframe可以让侯选词显示在光标处,所以建议安装。

安装 emacs-rime

git clone https://github.com/DogLooksGood/emacs-rime

把 emacs-rime 目录放到 load-path 下,增加下面配置:

(require 'rime)

;;; Code:
(setq rime-user-data-dir "~/.config/fcitx/rime")

(setq rime-posframe-properties
      (list :background-color "#333333"
            :foreground-color "#dcdccc"
            :font "WenQuanYi Micro Hei Mono-14"
            :internal-border-width 10))

(setq default-input-method "rime"
      rime-show-candidate 'posframe)

上面的配置分别设置 emacs-rime 读取 RIME 配置的路径、UI 细节和使用 posframe 来显示候选词。

测试

重启 Emacs 后, 调用 toggle-input-method 命令来尝试输入中文。

雾凇拼音 主页有一些输入用例, 如果你打同样的拼音可以补全相同的中文候选词, 就证明已经成功用上了雾凇拼音。

我个人的体验, 雾凇拼音的细节调教非常好,比我们自己折腾的 rime 词库要专业的多,中文输入, 特别是长句输入再也不用翻很多页。

emacs-rime 搭配雾凇拼音后, Emacs 的中文输入非常爽, 我顺手就给 rime-ice 的作者捐了一点款, 感谢开源作者的辛劳付出。 :wink:

配合插件

因为我经常用 Markdown 写很多博客分享, 除了 emacs-rime, rime-ice 外, 推荐两外两个插件一起配合来用, 口感最佳:

  1. deno-bridge-jieba: Emacs 默认不认识中文的分词位置, 所有要修改一段中文时只能一个一个汉字的移动, deno-bridge-jieba 利用 TypeScript/Deno 快速实现中文分词, 安装后 Emacs 就可以基于词的粒度来左右移动光标, 非常方便
  2. pangu-spacing: 我自己是强迫症, 一定希望中文博客中的英文单词两边要有空格这样看着才舒服, 但是手动调整中文内容的英文空格, 效率很低, pangu-spacing 这个插件会自动扫描当前文档内容, 自动添加英文单词空格, 节省了很多时间

One more thing

既然在 Emacs 都可以使用雾凇输入法, 外面的软件(比如 Chrome、 WPS 等)应该也可以使用雾凇输入法呀, 之前一直以为 fcitx5 的配置文件在 ~/.config/fctix5/rime 下面, 各种拷贝 rime-ice 配置都不行。

直到今天才发现 fcitx5 的配置路径在 ~/.local/share/fcitx5/rime 呀, 直接清空 ~/.local/share/fcitx5/rime 目录下的所有内容, 把上面调配好的 ~/.config/fcitx/rime 下的所有内容拷贝到 ~/.local/share/fcitx5/rime 下, 重启 fcitx5, 选择中州韵输入法即可。

这样 Emacs 和 Linux 下其他软件都可以使用流畅的雾凇输入法啦, 舒服。

18 个赞

好分享,先点个 Like 。关于汉字移动,我用的是 emacs-chinese-word-segmentation ,目前来说,表现挺好的。

1 个赞

看起来不错,原理是基于c++动态库实现的,性能应该不错。

感谢推荐。

大佬,如果设置 (setq pangu-spacing-real-insert-separtor t) 后,怎么解决链接里有中文的情况啊,之前我也一直用这个包,后来发现链接里有中文它会自动加空格导致破坏了链接,刚刚看了下#10这个 issue 还开着。

我还没用那么深啊,我主要遇到的问题是,偶尔它光标会往前跳一个字符。

等我有时间给他发几个补丁。

雾凇有什么特别的吗?

寻找可靠的粤拼双拼中

2 个赞

就是词库调的很好,你实际打字命中率高,最后输入体验很流畅

这样啊,我注意到他把原始的 /xxx 为 symbol 换了,大概率习惯不了(我这种好多年的词库就没什么需求的意义了

我已经被安利了,第一步先把词库都换上。体验两天,然后再来反馈一波。

请问如何简繁转换? 我看了下里边的switch,尝试用Ctrl+shift-4,但是会被emacs拦截。

改下试试,我换成了f7

可能是deno-bridge-jieba的原因,打开两个emacs,就会有cannot bind server socket这样的错误,还是暂时放弃中文分词好了 :joy:

你可以试一下楼上这个道友推荐的另外一个分词插件。

雾淞拼音感觉很不错,要是早点知道就好了,这样之前就不需要去学音形码。现在用星空键道太久已经形成肌肉记忆,连双拼都已经忘光了。

1 个赞

不知道有没有人成功将这个输入方案兼容 Android Trime 端??

嘗試了一下霧凇,長句子輸入比較好,只想增加這個功能,其他的有很多不適合我。

居然有键道用户……是键道 6 吗?想问下在 emacs 里是通过 rime 挂载码表实现的吗?

是啊,用 emacs-rime 然后挂的这个表Rime_JD

那想维护词库就是纯手动的吗 :face_exhaling: 这个会不会很烦……当时劝退我的就这一个点了,拼音可以自动记忆新词组,但这个不会……