目录

Ubuntu 18.04下调教rime输入法

我是一个对输入法比较挑剔的人,用过很多输入法,大都会有让我不满意的地方。因为我用的是五笔输入,本身在五笔下有良好用户体验的输入法就比较少,加上我对输入法有几个要求:

  • 能够完全自定义词库;
  • 能够自定义输入习惯,如中文模式下输入英文下不自动上屏,按shift键上屏英文编码等;
  • 能够保护隐私,最好离线;

这让我的选择从一片输入法中少了很多。几经周折,终于发现了最适合我的输入法:rime,因为其开源和多平台的特性,完美满足了我的需求,并让我最终把Windows和安卓上的输入法都换成了rime。前两天在实验室的Ubuntu上也配置了rime,在这里记录一下遇到的坑,供以后参考。

安装rime

1
sudo apt-get install ibus-rime

安装好以后,输入ibus-setup添加rime。在这里可能会遇到“ModuleNotFoundError: No module named ‘gi’”的问题,是python版本的原因。sudo vim /usr/bin/ibus-setup,将最后一行注释掉,并在结尾添加

1
exec python2 /usr/share/ibus/setup/main.py $@

保存后再执行ibus-setup,应该就能打开ibus的设置界面了。点击Input Method,添加Chinese - Rime。在系统设置里面,找到语言相关设置,添加Rime,就可以正常输入了。

配置

rime的配置文件夹是~/.config/ibus/rime,进入文件夹后可以看见相关的文件。使用vim新建文件default.custom.yaml,我们修改的配置就放在这里,避免直接修改原来的配置文件default.yaml,复制以下内容后保存。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
patch:
  ascii_composer:
    good_old_caps_lock: true
    switch_key:
      Shift_L: commit_code
      Shift_R: commit_code
      Caps_Lock: clear
  schema_list:
    - schema: luna_pinyin_simp
    - schema: wubi

这样,可以在中文模式下按shift以后切换为英文输入模式并上屏编码;并且在中文状态也可以自由切换英文大小写输入。此外,我们新添加了一个自己的输入方案:wubi。因为我自己的词库和官方的wubi86不同,于是干脆另外新建一个方案。现在我们要添加方案的配置文件和自己的词典。使用vim新建wubi.schema.yaml输入以下内容。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Rime schema settings
# encoding: utf-8

schema:
  schema_id: wubi
  name: "五笔"
  version: "0.20"
  description: |
    五筆字型定制版
    碼表源自 ibus-table
    敲 z 鍵進入拼音反查
  dependencies:
    - pinyin_simp

switches:
  - name: ascii_mode
    reset: 1

engine:
  processors:
    - ascii_composer
    - recognizer
    - key_binder
    - speller
    - punctuator
    - selector
    - navigator
    - express_editor
  segmentors:
    - ascii_segmentor
    - matcher
    - abc_segmentor
    - punct_segmentor
    - fallback_segmentor
  translators:
    - punct_translator
    - reverse_lookup_translator
    - table_translator

speller:
  delimiter: " ;'"
  #max_code_length: 4

translator:
  dictionary: wubi
  enable_charset_filter: true
  enable_sentence: true
  enable_encoder: true
  encode_commit_history: false
  enable_user_dict: true
  max_phrase_length: 4
  disable_user_dict_for_patterns:
    - "^z.*$"

reverse_lookup:
  dictionary: pinyin_simp
  prefix: "z"
  suffix: "'"
  tips: 〔拼音〕
  preedit_format:
    - xform/([nl])v/$1ü/
    - xform/([nl])ue/$1üe/
    - xform/([jqxy])v/$1u/

punctuator:
  full_shape:
    "$": {commit: "$"}
    "\\": {commit: "、"}
  half_shape:
    "$": {commit: "$"}
    "\\": {commit: "、"}
  import_preset: default

key_binder:
  import_preset: default

recognizer:
  import_preset: default
  patterns:
    reverse_lookup: "^z[a-z]*'?$"

将自己的词典wubi.dict.yaml复制到rime配置文件夹里,格式可以参考RimeWithSchemata · rime/home Wiki · GitHub,注意name一项需要是wubi。点击右上角的部署,按F4就可以选择刚刚自己配置的五笔方案了。

Rime默认的输入词条是纵向显示的,我想把他改成横向,这样比较符合我的输入习惯。命令行中输入ibus-setup,在Gerneral中把Candidates orientation改成Horizontal,现在就可以愉快地打字啦!

-----------------分--界--线-------------------

前两天我把系统更新到了20.04,发现在ibus中更改横向不起作用了,查了后知道才这是一个bug。在配置文件夹中vim ibus_rime.yaml新建文件,输入以下内容后保存:

1
2
style:
  horizontal: true

然后再重新部署后就好了。