唉,最近因為氣胸大過年的住院,春節頹廢了好久,今天開始回北京,乾脆來安利一個輸入法 -- Rime
碎碎念#
如同大多數人一樣,我之前也是使用搜狗輸入法作為自己的主力輸入法,但是搜狗輸入法的一些缺陷讓我放棄了使用搜狗輸入法
-
作為傳統藝能,搜狗輸入法隱私保護成謎,在 MacOS 上某幾個版本的搜狗在尋求獲取我的通訊錄和日曆讀取權限
-
作為傳統藝能,搜狗輸入法的廣告推送實在是一言難盡,特別是在 Windows 上,已經禁了一些組件,但是還是防不勝防
-
因為和港澳台和國外社區朋友的交流需要,我需要輸入法能夠比較好地支持繁體,而搜狗輸入法的繁體支持也是一言難盡
-
搜狗輸入法的定制能力也著實不滿足我的需求。。
因此我在 18 年開始在尋求一種開源,可控,可定制,對簡 / 繁輸入都比較友好的輸入法。經過尋找之後,Rime 輸入法進入了我的視線,經過一年多的使用,我覺得這個真的是一款非常棒的輸入法
Rime 是什麼?#
Rime
(又名 中州韻
)是一款開源的跨平台的輸入法引擎,完全開源,完全可定制,你甚至可以基於 Rime 的源碼,來封裝一套自己的輸入法引擎。同時因為 Rime
極其高的定制性,你可以基於 Rime
製作自己的輸入法。
Rime
的優勢主要在於通過配置文件的方式,對擴展提供了極好的支持,而且繁體支持非常棒
舉個例子
在這裡,「才」「纔」不一樣。還有很多的例子,大家可以自行體驗。
但是 Rime
成也極高的定制性,敗也極高的定制性,對於使用者而言,純 YAML 配置文件的定制方式,準入門檻太高
讓你的 Rime 更好用#
首先上一下我的 Rime 配置的效果
好了,我們開始來聊聊怎麼安裝配置 Rime
Rime 基礎安裝#
沒啥好說的,從官網 下載對應平台的安裝包安裝即可,在 MacOS 下,Rime
的配置在 ~/Library/Rime
下,大家可以用 VSCode 之類的文本編輯器打開對應的目錄,進行編輯
官方並不建議直接修改原始的配置文件,因為輸入法更新時會重新覆蓋默認配置,可能導致某些自定義配置丟失;推薦作法是創建一系列的 patch 配置,通過類似打補丁替換這種方式來實現無感的增加自定義配置;
Rime 配色#
Rime
的配色管理文件是 squirrel.custom.yaml
,我自己使用了網友貢獻的即刻黃配色
想要切換皮膚配色只需要修改 style/color_scheme 為相應的皮膚配色名稱即可
patch:
app_options:
"com.runningwithcrayons.Alfred-3":
ascii_mode: true
com.google.android.studio:
ascii_mode: true
com.jetbrains.intellij:
ascii_mode: true
show_notifications_when: appropriate # 狀態通知,適當(appropriate),開(always)關(never)
style:
color_scheme: jike
preset_color_schemes:
apathy:
name: "冷漠 / Apathy"
author: "LIANG Hai "
horizontal: true # 水平排列
inline_preedit: true #單行顯示,false雙行顯示
candidate_format: "%c\u2005%@\u2005" # 編號 %c 和候選詞 %@ 前後的空間
corner_radius: 5 #候選條圓角
border_height: 0
border_width: 0
back_color: 0xFFFFFF #候選條背景色
font_face: "PingFangSC-Regular,HanaMinB" #候選詞字體
font_point: 16 #候選字詞大小
text_color: 0x424242 #高亮選中詞顏色
label_font_face: "STHeitiSC-Light" #候選詞編號字體
label_font_point: 12 #候選編號大小
hilited_candidate_text_color: 0xEE6E00 #候選文字顏色
hilited_candidate_back_color: 0xFFF0E4 #候選文字背景色
comment_text_color: 0x999999 #拼音等提示文字顏色
jike:
name: 即刻黃
author: Ryekee
back_color: 0x11E4FF
corner_radius: 5 #候選條圓角
border_height: 0
border_width: 0
candidate_format: "%c\u2005%@\u2005"
candidate_text_color: 0x362915
comment_text_color: 0x000000
font_face: "PingFangSC-Regular,HanaMinB"
font_point: 16 #候選字詞大小
hilited_candidate_back_color: 0xF4B95F
hilited_candidate_text_color: 0xFFFFFF
horizontal: true
inline_preedit: true
label_font_face: "STHeitiSC-Light"
label_font_point: 12
text_color: 0xFFFFFF
Rime 快捷鍵字符#
在 Rime
中,可以設置一些快捷鍵幫助輸入一些特殊字符和表情。默認自帶了很多,
比如輸入 /bg
會給出八卦圖案的列表
比如輸入 /xl
會給出希臘字符的列表
更多的快捷輸入可以參看 symbols.yaml
下的列表,其中一些比較好玩的給大家看看
#月份、日期、曜日等
'/yf': [ ㋀, ㋁, ㋂, ㋃, ㋄, ㋅, ㋆, ㋇, ㋈, ㋉, ㋊, ㋋ ]
'/rq': [ ㏠, ㏡, ㏢, ㏣, ㏤, ㏥, ㏦, ㏧, ㏨, ㏩, ㏪, ㏫, ㏬, ㏭, ㏮, ㏯, ㏰, ㏱, ㏲, ㏳, ㏴, ㏵, ㏶, ㏷, ㏸, ㏹, ㏺, ㏻, ㏼, ㏽, ㏾ ]
'/yr': [ 月, 火, 水, 木, 金, 土, 日, ㊊, ㊋, ㊌, ㊍, ㊎, ㊏, ㊐, ㊗, ㊡, ㈪, ㈫, ㈬, ㈭, ㈮, ㈯, ㈰, ㈷, ㉁, ㉀ ]
#時間
'/sj': [ ㍘, ㍙, ㍚, ㍛, ㍜, ㍝, ㍞, ㍟, ㍠, ㍡, ㍢, ㍣, ㍤, ㍥, ㍦, ㍧, ㍨, ㍩, ㍪, ㍫, ㍬, ㍭, ㍮, ㍯, ㍰ ]
#天干、地支、干支
'/tg': [ 甲, 乙, 丙, 丁, 戊, 己, 庚, 辛, 壬, 癸 ]
'/dz': [ 子, 丑, 寅, 卯, 辰, 巳, 午, 未, 申, 酉, 戌, 亥 ]
'/gz': [ 甲子, 乙丑, 丙寅, 丁卯, 戊辰, 己巳, 庚午, 辛未, 壬申, 癸酉, 甲戌, 乙亥, 丙子, 丁丑, 戊寅, 己卯, 庚辰, 辛巳, 壬午, 癸未, 甲申, 乙酉, 丙戌, 丁亥, 戊子, 己丑, 庚寅, 辛卯, 壬辰, 癸巳, 甲午, 乙未, 丙申, 丁酉, 戊戌, 己亥, 庚子, 辛丑, 壬寅, 癸卯, 甲辰, 乙巳, 丙午, 丁未, 戊申, 己酉, 庚戌, 辛亥, 壬子, 癸丑, 甲寅, 乙卯, 丙辰, 丁巳, 戊午, 己未, 庚申, 辛酉, 壬戌, 癸亥 ]
#節氣
'/jq': [ 立春, 雨水, 驚蟄, 春分, 清明, 穀雨, 立夏, 小滿, 芒種, 夏至, 小暑, 大暑, 立秋, 處暑, 白露, 秋分, 寒露, 霜降, 立冬, 小雪, 大雪, 冬至, 小寒, 大寒 ]
#單位
'/dw': [ Å, ℃, %, ‰, ‱, °, ℉, ㏃, ㏆, ㎈, ㏄, ㏅, ㎝, ㎠, ㎤, ㏈, ㎗, ㎙, ㎓, ㎬, ㏉, ㏊, ㏋, ㎐, ㏌, ㎄, ㎅, ㎉, ㎏, ㎑, ㏍, ㎘, ㎞, ㏎, ㎢, ㎦, ㎪, ㏏, ㎸, ㎾, ㏀, ㏐, ㏓, ㎧, ㎨, ㎡, ㎥, ㎃, ㏔, ㎆, ㎎, ㎒, ㏕, ㎖, ㎜, ㎟, ㎣, ㏖, ㎫, ㎳, ㎷, ㎹, ㎽, ㎿, ㏁, ㎁, ㎋, ㎚, ㎱, ㎵, ㎻, ㏘, ㎩, ㎀, ㎊, ㏗, ㏙, ㏚, ㎰, ㎴, ㎺, ㎭, ㎮, ㎯, ㏛, ㏜, ㎔, ㏝, ㎂, ㎌, ㎍, ㎕, ㎛, ㎲, ㎶, ㎼ ]
#貨幣
'/hb': [ ¥, ¥, ¤, ¢, $, $, £, £, ৳, ฿, ₠, ₡, ₢, ₣, ₤, ₥, ₦, ₧, ₩, ₪, ₫, €, ₭, ₮, ₯, ₰, ₱, ₲, ₳, ₴, ₵, ₶, ₷, ₸, ₹, ₺, ₨, ﷼ ]
而我參考漠然的配置,在 luna_pinyin_simp.custom.yaml
中添加了一些配置
punctuator:
import_preset: symbols
symbols:
"/fs": [½,‰,¼,⅓,⅔,¾,⅒]
"/dq": [🌍,🌎,🌏,🌐,🌑,🌒,🌓,🌔,🌕,🌖,🌗,🌘,🌙,🌚,🌛,🌜,🌝,🌞,⭐,🌟,🌠,⛅,⚡,❄,🔥,💧,🌊]
"/jt": [⬆,↗,➡,↘,⬇,↙,⬅,↖,↕,↔,↩,↪,⤴,⤵,🔃,🔄,🔙,🔚,🔛,🔜,🔝]
"/sg": [🍇,🍈,🍉,🍊,🍋,🍌,🍍,🍎,🍏,🍐,🍑,🍒,🍓,🍅,🍆,🌽,🍄,🌰,🍞,🍖,🍗,🍔,🍟,🍕,🍳,🍲,🍱,🍘,🍙,🍚,🍛,🍜,🍝,🍠,🍢,🍣,🍤,🍥,🍡,🍦,🍧,🍨,🍩,🍪,🎂,🍰,🍫,🍬,🍭,🍮,🍯,🍼,🍵,🍶,🍷,🍸,🍹,🍺,🍻,🍴]
"/dw": [🙈,🙉,🙊,🐵,🐒,🐶,🐕,🐩,🐺,🐱,😺,😸,😹,😻,😼,😽,🙀,😿,😾,🐈,🐯,🐅,🐆,🐴,🐎,🐮,🐂,🐃,🐄,🐷,🐖,🐗,🐽,🐏,🐑,🐐,🐪,🐫,🐘,🐭,🐁,🐀,🐹,🐰,🐇,🐻,🐨,🐼,🐾,🐔,🐓,🐣,🐤,🐥,🐦,🐧,🐸,🐊,🐢,🐍,🐲,🐉,🐳,🐋,🐬,🐟,🐠,🐡,🐙,🐚,🐌,🐛,🐜,🐝,🐞,🦋]
"/bq": [😀,😁,😂,😃,😄,😅,😆,😉,😊,😋,😎,😍,😘,😗,😙,😚,😇,😐,😑,😶,😏,😣,😥,😮,😯,😪,😫,😴,😌,😛,😜,😝,😒,😓,😔,😕,😲,😷,😖,😞,😟,😤,😢,😭,😦,😧,😨,😬,😰,😱,😳,😵,😡,😠]
"/ss": [💪,👈,👉,👆,👇,✋,👌,👍,👎,✊,👊,👋,👏,👐]
"/dn": [⌘, ⌥, ⇧, ⌃, ⎋, ⇪, , ⌫, ⌦, ↩︎, ⏎, ↑, ↓, ←, →, ↖, ↘, ⇟, ⇞]
"/fh": [©,®,℗,ⓘ,℠,™,℡,␡,♂,♀,☉,☊,☋,☌,☍,☑︎,☒,☜,☝,☞,☟,✎,✄,♻,⚐,⚑,⚠]
"/xh": [*,×,✱,★,☆,✩,✧,❋,❊,❉,❈,❅,✿,✲]
設置輸入法#
大家可以在 default.custom.yaml
中設置自己喜歡的輸入法,我目前使用的是明月拼音,默認切換輸入法的快捷鍵是 Ctrl+~
但是因為這個快捷鍵和 VSCode 快捷鍵衝突,所以我將其改為 Ctrl+Shift+F12
patch:
menu:
page_size: 8
schema_list:
- schema: luna_pinyin_simp # 朙月拼音 簡化字
"switcher/hotkeys":
- "Control+Shift+F12"
調教詞庫#
這裡引用漠然的講解:
Rime 默認的詞庫稍為有點弱,我們可以下載一些搜狗詞庫來進行擴展;不過搜狗詞庫格式默認是無法解析的,好在有人開發了工具可以方便的將搜狗細胞詞庫轉化為 Rime 的格式 (工具點擊這裡下載);目前該工具只支持 Windows (也有些別人寫的 py 腳本啥的,但是我沒用),所以詞庫轉換這種操作還得需要一個 Windows 虛擬機;
轉換過程很簡單,先從搜狗詞庫下載一系列的 scel 文件,然後批量選中,接著調整一下輸入和輸出格式點擊轉換,最後保存成一個 txt 文本
光有這個文本還不夠,我們要將它塞到詞庫的 yaml 配置裡,所以新建一個詞庫配置文件 luna_pinyin.sougou.dict.yaml,然後寫上頭部說明 (注意最後三個點後面加一個換行)
# Rime dictionary
# encoding: utf-8
# 搜狗詞庫 目前包含如下:
# IT計算機 實用IT詞彙 親戚稱呼 化學品名 數字時間 數學詞彙 淘寶詞庫 編程語言 軟件專業 顏色名稱 程序猿詞庫 開發專用詞庫 搜狗標準詞庫
# 攝影專業名詞 計算機專業詞庫 計算機詞彙大全 保險詞彙 最詳細的全國地名大全 飲食大全 常見花卉名稱 房地產詞彙大全 中國傳統節日大全 財經金融詞彙大全
---
name: luna_pinyin.sougou
version: "1.0"
sort: by_weight
use_preset_vocabulary: true
...
接著只需要把生成好的詞庫 txt 文件內容粘貼到三個點下面即可;但是詞庫太多的話你會發現這個文本有好幾 M,一般編輯器打開都會卡死,解決這種情況只需要用命令行 cat 一下就行
cat sougou.txt >> luna_pinyin.sougou.dict.yaml
最後修改 luna_pinyin.extended.dict.yaml 中的 import_tables 字段,加入剛剛新建的詞庫即可
---
name: luna_pinyin.extended
version: "2016.06.26"
sort: by_weight #字典初始排序,可選original或by_weight
use_preset_vocabulary: true
#此處為明月拼音擴充詞庫(基本)默認鏈接載入的詞庫,有朙月拼音官方詞庫、明月拼音擴充詞庫(漢語大詞典)、明月拼音擴充詞庫(詩詞)、明月拼音擴充詞庫(含西文的詞彙)。如果不需要加載某個詞庫請將其用「#」註釋掉。
#雙拼不支持 luna_pinyin.cn_en 詞庫,請用戶手動禁用。
import_tables:
- luna_pinyin
# 加入搜狗詞庫
- luna_pinyin.sougou
- luna_pinyin.poetry
- luna_pinyin.cn_en
- luna_pinyin.kaomoji
在我的配置中,我加入了來自搜狗的醫學,古詩詞,軍事等詞庫(逃
快捷鍵設置#
這裡參考了 Rime
作者的一個 Gist 對快捷鍵做了一些配置
ascii_composer/good_old_caps_lock: true
ascii_composer/switch_key:
Caps_Lock: commit_code
Control_L: noop
Control_R: noop
# 按下左 shift 英文字符直接上屏,不需要再次回車,輸入法保持英文狀態
Shift_L: commit_code
Shift_R: noop
總結#
經過這一系列折騰下來,我們 Rime
應該就能滿足我們日常的使用了,文中的配置都可以直接用我放在 GitHub 上的配置實現開箱即用 RimeConfig
可能有人想問,為什麼對於一個輸入法都需要這麼多的時間進行調教?是這樣,我覺得對於一些關係我們日常使用的基礎工具,花一定量的時間去尋找合適自己,並且將其按照的自己的需求進行調教,是一件非常有意義的事。在後續的工作生活學習中,這也將極大的提升我們的幸福感與效率
嗯差不多這樣吧,新年第一篇文章,祝大家新年快樂!