音形输入应如是。
视频介绍: Glim 输入方案使用说明
阅读提示
: 列位看官可以借助目录直接跳转至所需章节。
Glim 是一款挂接于 Rime 的拼音输入方案。其支持:
- 全拼及多种双拼布局
- 以小鹤形码辅助选字/词 (参见「功能 - 形码支持」)
- 若干仅依靠 Rime 设置难以实现的功能 (如单字固序)
该方案的形码匹配不依赖词库,故:
- 形码是一个辅助功能,可以被开启、关闭或者调节其行为
- 词库 (自带/用户自行添加) 无须包含形码编码,但可以被形码筛选
我此前是小鹤双拼的使用者,在开始使用 colemak 键盘布局后,由于一直找不到针对 colemak 设计的双拼布局,于是我最终自己造了一个,叫它 Chole (当然也是 glim 支持的双拼方案之一)。
当我开始受到拼音重码的困扰时,我尝试去寻找一种解决方案。研究后发现,可供选择的解决重码的方案无外乎如下几种: 五笔,以词定字,音形输入。
五笔首先被我排除,纯字形输入对拼音输入法使用者来说切换代价太大。
以词定字第一眼看上去很不错,因为学习成本为0,设置成本也不高。可是实际使用时会发现这个方案有两个问题。一是用来定字的词,很可能不在候选首位,甚至有时都不在首页。如果为了定字,要先找词,那这个方案就失去了意义。二是同音词的筛选无法解决。
而音形输入方案,市面上有不少,但我却陷入一个尴尬的境地,要么:
- 重新学习一套「全家桶」式的音形输入方案
- 放弃已经适应的双拼布局
- 词库变小 (变小是相对百万级的拼音词库而言,音形方案的词库量一般在几万至几十万不等)
- 需要适应新的方案极其不同的输入方式 (例如简码,一韵多键,声笔分区,顶功等等)
- 自己用正则/写脚本改词库
- 对普通用户操作难度太大
- 形码的一处改动会牵动全局,长期可维护性堪忧。
- 在长句输入时会有 可感知 的延迟,词库越大延迟越高。
- 挂载别的拼音词库变的比原先困难很多
此间我逐渐明确了我自己的需求,并开始亦步亦趋的摸索一种独立外挂形码的拼音方案,这是 glim 的诞生背景。
- 独立形码。
- 同时支持整句及字词音形输入。
- 默认不开启简拼。不破坏双拼两键一字节奏,以其他方式解决简拼问题。
- 词库量 > 重码率/码长。优先保证词库质量和数量。
此处有必要提一下「落格输入法」,glim 对于形码的思路与落格非常接近,但很可惜的是这款输入法是 macOS/iOS 独占的 (且以订阅制收费)。
注意: glim 是挂载于 Rime 输入法引擎的输入方案,安装 glim 前请确保 Rime 已安装,详见 Rime
- 下载所需文件
# 克隆本仓库
git clone https://github.com/alexluigit/glim
# 或从 Release 页面下载最新版
- 复制
assets/glim.custom.yaml
至上级目录
cp glim/assets/glim.custom.yaml ..
- 复制文件夹至目标目录
Windows: %APPDATA%\Rime
macOS: ~/Library/Rime
Linux: ~/.config/ibus/rime
(for ibus) | ~/.local/share/fcitx5/rime
(for fcitx5)
暂未测试同文 (Android), 有需要可自行尝试。
完成下方设置后请记得部署 Rime。
打开 glim.custom.yaml 文件,找到 ‘### 选择双拼方案或全拼 (单选)’, 去掉所需方案之前的 ‘#’。
目前支持的双拼方案有: 小鹤,自然码,微软,拼音加加,chole
### 选择双拼方案或全拼 (单选)
### 请确保注释掉其他方案
__include: glim.layout:/flypy # 小鹤
# __include: glim.layout:/natural # 自然码
# __include: glim.layout:/ms # 微软
# __include: glim.layout:/pyjj # 拼音加加
# __include: glim.layout:/full # 全拼
# __include: glim.layout:/chole # chole
打开 glim.custom.yaml
文件,找到 ‘### 按键’ 一节。
选项开关名:
toggle: zh_simp_s2t
切换 简/繁体toggle: full_shape
切换 全/半角toggle: full_charset
切换 8105/超大字符集
常用按键名:
key_repr | equals_to | key_repr | equals_to |
---|---|---|---|
comma | , | apostrophe | ’ |
period | . | bracketleft | [ |
slash | / | plus | + |
semicolon | ; | backslash | \ |
更多详情参见: https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md
默认按键设置为:
### 按键
key_binder/bindings/+:
### emacs 风格文本编辑
- { when: composing, accept: Control+p, send: Up }
- { when: composing, accept: Control+n, send: Down }
- { when: composing, accept: Control+b, send: Left }
- { when: composing, accept: Control+f, send: Right }
- { when: composing, accept: Control+a, send: Home }
- { when: composing, accept: Control+e, send: End }
- { when: composing, accept: Control+d, send: Delete }
- { when: composing, accept: Control+k, send: Shift+Delete }
- { when: composing, accept: Control+h, send: BackSpace }
- { when: composing, accept: Control+g, send: Escape }
- { when: composing, accept: Control+bracketleft, send: Escape }
### Tab, Control+i/o 字间移动光标
- { when: composing, accept: ISO_Left_Tab, send: Shift+Left }
- { when: composing, accept: Shift+Tab, send: Shift+Left }
- { when: composing, accept: Tab, send: Shift+Right }
- { when: composing, accept: Control+i, send: Shift+Right }
- { when: composing, accept: Control+o, send: Shift+Left }
### 减号等号翻页
- { when: has_menu, accept: minus, send: Page_Up }
- { when: has_menu, accept: equal, send: Page_Down }
### 选项开关
- { when: always, accept: Control+Shift+1, toggle: zh_simp_s2t }
- { when: always, accept: Control+Shift+2, toggle: full_shape }
- { when: always, accept: Control+Shift+3, toggle: full_charset }
- { when: composing, accept: Control+t, toggle: zh_simp_s2t }
#### 二三选上屏
- { when: has_menu, accept: semicolon, send: 2 }
- { when: has_menu, accept: apostrophe, send: 3 }
#### 强制分词
- { when: composing, accept: slash, send_sequence: ';;{BackSpace}' }
#### 形码引导
- { when: composing, accept: Shift+question, send: ':' }
打开 glim.custom.yaml 文件,找到 ‘### 标点’ 部分,按提示更改。
### 标点
punctuator/half_shape/=:
',' : { commit: ,}
'.' : { commit: 。}
'/' : [ '/', ; ]
':' : { commit: :}
'''': { pair: [ 「, 」 ] }
'"' : { pair: [ 「, 」 ] }
'\' : [ 、, '\' ]
'|' : [ ·, ・, '|', |, '§', '¦', '‖', ︴]
'!' : { commit: !}
如无特别说明,本文所使用的设置项均位于 glim.custom.yaml 文件。 修改设置后需重新部署以使设置生效。 本文示例中所使用的双拼方案为小鹤,其余方案原理相同。
本方案所使用的形码方案来自小鹤,请确保你已阅读 小鹤双形
输入「:」(或设置「形码引导」快捷键) 开始筛选当前候选项。
- 单字匹配首码 + 末码
- 二字词语按 首字首码 + 末字首码 匹配
- 三字以上词语取末二字,规则与二字词相同。
ui:a | ui:ob | uiui:l | uiui:of |
---|---|---|---|
1.石 :al | 1.匙 :ob | 1.史诗 :ly | 1.时势 :of |
2.世 :av | 2.史实 :lb | ||
3. … | 3. … |
glim/glyph_hint_level
: 调整形码提示等级。默认值为2。
glim/glyph_hint_level: 2
等级 | 含义 | 示例 |
---|---|---|
0 | 不提示 | 它 |
1 | 仅编码 | 它 :bb |
2 | 编码 + 部件 | 它 :bb 宀匕 |
glim/glyph_auto_level
: 调整自动形码等级。默认值为2。
glim/glyph_auto_level: 2
0
: 关闭自动形码1
: 当前候选为 [单字1, 单字2, …] 时- 紧随其后的两码将匹配所有候选单字形码 (无需「:」)
- 形码码长为 1 时匹配结果插入首选
- 形码码长为 2 时匹配结果插入首选或次选 (参见「定制 - 关于重码」)
2
: 当前候选为 [二字词1, 二字词2, …] 时 (默认值)- 紧随其后的两码将按 首字首码 + 末字首码 匹配形码 (无需「:」)
- 匹配结果插入首选或次选 (参见「定制 - 关于重码」)
- 候选为 [单字1, 单字2, …] 时与1相同。
wfh | yiru | uiyjr | uiuiba |
---|---|---|---|
1. 稳 :hx | 1. 一如 | 1. 食盐 :rt | 1. 实事 :ba |
2. 文化 | 2. 佚 :ru | 2. 食言 :rw | 2. 室事 :ba |
3. 温和 | 3. … | 3. 食咽 :rk | 3. 试试吧 |
注意
:
- 该功能 不支持 全拼方案。
- 该功能在造词过程中依旧有效。
- 该功能仅匹配 I 级及 II 级字 (减少无谓干扰),III 级字请用「:」引导筛选。
glim/fixed_sing_ch
: 单字候选是否固定顺序。 该选项默认开启。 形码候选单字排序也由此项决定 (参见「定制 - 关于重码」)。 二字及以上词语是否调频由translator/enable_user_dict
选项决定。
glim/fixed_single_ch: true
glim/fixed_26
: 输入单字母时对应某个固定预设汉字 , 且该字将不会出现在后续候选中。 该选项默认开启。 例如: t –> 1. 他 2. 她 3. 它 … ta –> 1. 她 2. 它 3. 塔 … (「他」字不再出现)
全局简拼与此方案的形码机制不兼容,所以双拼方案下仅开启了带分隔符的简拼。
qqww | q’q’w’w |
---|---|
1. 秋闱 | 1. 千千万万 |
2. … | 2. … |
为了免除人工给每个字母加单引号的麻烦,该方案引入了 ;; 后缀以强制分词。 输入 qqww + ;; (或设置「强制分词」快捷键) 将直接得到 q’q’w’w
glim/navigate_with
: 用于组句时快速定位到第 X 字。
默认为 asdfghjkl
(QWERTY 中排)
glim/navigate_with: "asdfghjkl"
即: A -> 第1个字, S -> 第二个字, D -> 第三个字, … L -> 第9个字
假设想输入的句子是: 总有一条蜿蜒在童话镇里梦幻的河
zong you yi tiao … meng huan de he| |
---|
1. 总有一条蜿蜒在童话真理梦幻的河 |
2. 总有 |
3. … |
此时输入 J (Shift+j)
可移动光标至「在」之后:
zong you yi tiao wan yan zai | tong … de he |
---|
1. 总有一条蜿蜒在 |
2. 总有 |
3. … |
确认后:
总有一条蜿蜒在tong hua zhen … de he| |
---|
1. 童话真理梦幻的河 |
2. 童话镇 |
3. … |
设置范例:
# Colemak
glim/navigate_with: "arstdhneio"
# Dvorak
glim/navigate_with: "aoeuidhtns"
# 禁用该功能
glim/navigate_with: ""
注意
:
- 该功能默认情况下 不支持 全拼方案,全拼方案需自行编译最新 librime-lua 以支持该功能。
本方案设有 8105/超大字符集 选项开关。默认快捷键为:
- { when: always, accept: Control+Shift+3, toggle: full_charset }
8105字符集指的是 <<通用规范汉字表>> (2013) 收录的所有汉字。
- 总计8105个
- 是可以被形码筛选的所有汉字
- 在选项菜单中以「一」字代表 (笔画最少的汉字)。
超大字符集指的是本方案收录的所有汉字
- 总计 42000 余 (包括多音字)。
- 在选项菜单中以「𰻝」字代表 (笔画最多的汉字)。
当二字词与单字全码重码时,其排序由 glim/fixed_single_ch
决定。
glim/fixed_single_ch: false
didm |
---|
1.地点 |
2.涤 dm |
3. … |
输入一次 (或多次) 「涤」 后, 排序可能变为:
didm |
---|
1.涤 dm |
2.地点 |
3. … |
glim/fixed_single_ch: true
didm |
---|
1.地点 |
2.涤 dm |
3. … |
「涤」 字将始终排在第二,不会受到其他词词频影响。
当开启此选项时, 如果你对某些全码的排序不满意,可自行修改 lua/tables/duplicate/[Your_schema].lua
,
注释掉你不想要的词重新部署即可。(注释掉所有词表示单字优先)
["didm"] = {["phrase"] = "地点", ["word"] = {"涤"}},
didm -> 1.地点 2.涤 dm 3. ...
-- ["didm"] = {["phrase"] = "地点", ["word"] = {"涤"}},
didm -> 1.涤 dm 2.地点 dm 3. ...
TODO
TODO
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.