唉,最近因為氣胸大過年的住院,春節頹廢了好久,今天開始回北京,乾脆來安利一個輸入法-- 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: 0xFFFFFFRime 快捷鍵字符在 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.sougouversion: "1.0"sort: by_weightuse_preset_vocabulary: true...接著只需要把生成好的詞庫 txt 文件內容粘貼到三個點下面既可;但是詞庫太多的話你會發現這個文本有好幾十 M,一般編輯器打開都會卡死,解決這種情況只需要用命令行 cat 一下就行
cat sougou.txt >> luna_pinyin.sougou.dict.yaml最後修改 luna_pinyin.extended.dict.yaml 中的 import_tables 欄位,加入剛剛新建的詞庫既可
---name: luna_pinyin.extendedversion: "2016.06.26"sort: by_weight #字典初始排序,可選original或by_weightuse_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
可能有人想問,為什麼對於一個輸入法都需要這麼多的時間進行調教?是這樣,我覺得對於一些關係我們日常使用的基礎工具,花一定量的時間去尋找合適自己,並且將其按照的自己的需求進行調教,是一件非常有意義的事。在後續的工作生活學習中,這也將極大的提升我們的幸福感與效率
嗯差不多這樣吧,新年第一篇文章,祝大家新年快樂!
啊,對了,,還是老規矩,大家可以點擊閱讀原文來去我的博客查看文中的一些參考連結