中州韵输入法引擎(英语:Rime Input Method Engine,又称Rime 输入法)是由佛振编写的开源中文输入法,目前项目网站、源代码均托管在GitHub[注 1]。基于同一个核心架构,该输入法分为三个官方发行版:Linux 发行版中州韵(ibus-rime)、Windows发行版小狼毫(Weasel)、macOS 发行版鼠须管(Squirrel)。另有数个第三方发行版:Linux 发行版fcitx-rime、Windows发行版PRIME、macOS 发行版XIME、Android发行版同文输入法(Trime)、iOS发行版iRime。
https://rime.im/download/#linux
https://wiki.archlinux.org/title/IBus
安装
pacman -S ibus
pacman -S ibus-rime
要在用户登录时启动 IBus,请使用以下命令创建自动启动条目:
ibus-daemon -drxR
卸载或者停止其他输入法的开机启动,比如我在i3中使用的fcitx3让其不要开机启动。防止出现冲突。
# fcitx3 输入法
#exec --no-startup-id fcitx5 &
配置环境变量
~/.xprofile
内容如下:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -x -d
最后一行,可选的,用于开机自动启动。如果已经自动开机启动了,不需要这一行。
配置输入法
命令行中输入
ibus-setup
在这里增加rime输入法。重启电脑就可以使用输入法了。
我要安装五笔输入法,详细可以参考这篇文章。
https://zhuanlan.zhihu.com/p/141089002?from_voters_page=true
简单的介绍关键点。
~/.config/ibus/rime/
这样输入法就配置完成了。
输入法候选词默认是竖排显示,有些不习惯。我在设置中设置成横排,也不生效。
解决办法:
Arch Linux, Gnome 3.32, Wayland 环境下的可行办法:
创建空白文件:
~/.config/ibus/rime/build/ibus_rime.yaml
向 ibus_rime.yaml 写入并保存以下内容:
style:
horizontal: true
重新部署 ibus-rime
参考:https://github.com/rime/ibus-rime/issues/52
我在安装rime中遇到一个大坑,
我不清楚是什么原因导致,我的ibus输入法中的拼音输入法,无法正常打字。也就是使用拼音输入法,没法打汉字,打出来也是英文。
导致我以为我rime没有安装成功。一直在调试,把wiki看了好看遍也无法解决。
后来我发现,我直接切rime输入法,就可以打字了。也就是说这个拼音输入法
有问题,而rime可以正常使用。
我试了别的输入法也不可以输入,就rime可以,不知道是不是我哪个地方没有配置好导致的。
TODO:
目前不太清楚,为什么我的电脑上安装的ibus无法使用除了rime以前的其他输入法,有知道的朋友麻烦评论区选择我。虽然对我来说不影响,不知道解决办法,心里不痛快。
在使用vim的过程中一般会希望按esc自动的切到英文输入法。
具体可以用这个插件来实现:
https://github.com/kevinhwang91/nvim-ibus-sw
对于nvim我是自己写的插件。通过学习上面插件的源码得知:
ibus engine
比如我这里中文输入法是:rime
英文输入法是:xkb:us::eng
ibus engine rime
ibus engine xkb:us::eng
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "xkb:us::eng",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/bin/ibus engine",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/bin/ibus engine {im}"
参考:
https://segmentfault.com/a/1190000017233132
https://zh.wikipedia.org/zh-cn/%E4%B8%AD%E5%B7%9E%E9%9F%BB%E8%BC%B8%E5%85%A5%E6%B3%95%E5%BC%95%E6%93%8E
https://gist.github.com/weynhamz/5970670