输入法作为一个入口,能掌握和得到的数据很多,比如但不限于密码,聊天文字,不合时宜的文字等等。所以,一般情况我是不会用第三方的闭源输入法。随着iOS12,对于双拼的系统层面的支持,从此我就变成了原生输入法。用了这么久觉得一切都挺好,尤其微软拼音在Win10下的表现令我挺意外。至于苹果上,iOS上面的双拼(微软双拼)键盘布局有点让人不开心,以及MacOS原生输入法切换中/英文的Caps的按键有点奇葩之外(尤其是在HHKB上,需要Fn+Tab),其余我都挺喜欢。但是不是有更好的选择。答案当然是肯定的,那就是RIME

RIME输入法再Mac下面叫鼠须管,它的定制性很强,以至于挡住了一部分人。这篇文章也是简单的说一下,如何调教出来一个比较好用好看的输入法。

基本使用

这里可以下载到最新版本的鼠须管,安装过程很简单。完成后,找各地方切换到这个输入法来使用使用。初次的情况它会默认是繁体的拼音输入法。需要按Ctrl+``或者F4来触发选择菜单。在这里可以将繁体修改成简体。

进一步

其实目前市面上已经有了很多输入法方案,例如五笔输入法,双拼的各种版本,仓颉输入法等等。这些都可以在鼠须管里面通过配置文件实现,现在知道为何它强大了吧。它提供了一个完整的输入框架,可以再上面定制属于自己的输入法。

在系统状态栏右键选择输入法选项,会有「Deploy」和「Settings」选项。通过Settings我们可以来到鼠须管的配置文件地址**/Library/Rime/**。在这里就会有该输入法的所有yaml配置文件。

一般情况,我们需要定制化的文件,都会增加一层后缀*.custom*,like this:

default.yaml -> default.custom.yaml

如果没有上述的文件,可以自己新建一个。例如我想要把每一页的文字候选修改为5个,我首先需要新建一个default.custom.yaml文件,然后输入:

patch:
	"menu/page_size": 5

这里需要注意的是,yaml的语法需要在key/value之间添加**: **(冒号和空格),如果忘记写空格会报错。

如果我想修改一下F4出来的菜单,也可以新加入一个属性:

schema_list:
    - schema: double_pinyin_mspy   # 微軟雙拼
    - schema: emoji         # emoji表情

double_pinyin_mspy是我自己下载的一个输入法,具体的方案名称可以参考这里,双拼的输入方案可以在这里下载。我因为基本都是输入汉字,所有这里我做了一下改动:

switches:
  - name: ascii_mode
    reset: 0
    states: [ 中文, 西文 ]
  - name: full_shape
    states: [ 半角, 全角 ]
  - name: simplification
    reset: 1 # reset可以给该属性设定一个默认值,即states[reset]
    states: [ 漢字, 汉字 ]
  - name: ascii_punct
    states: [ 。,, ., ]

正如上面所说,如果我想配置一个属性,我可以新建一个文件double_pinyin_mspy.custom.yaml添加一个属性:

patch:
  translator/preedit_format: {}     # 输入双拼码的时候不转化为全拼码,即haode->hkde。

每一次完成修改之后,都需要重新部署一遍。在系统状态栏右键选择输入法选项选「Deploy」。

自定义皮肤

鼠须管可以通过设置配色,来改变输入框的样式。我们需要新建一个squirrel.custom.yaml,RIME内置了几个样式就挺不错的。

# 適用於【鼠鬚管】0.9.13+
# 位置:~/Library/Rime/squirrel.custom.yaml
# 用法:想要哪項生效,就刪去該行行首的#字符,但注意保留用於縮進的空格

patch:
  us_keyboard_layout: true      # 鍵盤選項:應用美式鍵盤佈局
  show_notifications_when: growl_is_running  # 狀態通知,默認裝有Growl時顯示,也可設爲全開(always)全關(never)
  style/horizontal: true        # 候選窗横向顯示
#  style/inline_preedit: false   # 非內嵌編碼行
#  style/font_face: "儷黑 Pro"    # 我喜歡的字體名稱
  style/font_point: 14          # 字號
  style/display_tray_icon: true  # 顯示托盤圖標
  style/corner_radius: 5       # 窗口圓角半徑
  style/border_height: 0        # 窗口邊界高度,大於圓角半徑才有效果
  style/border_width: 0         # 窗口邊界寬度,大於圓角半徑才有效果
  style/line_spacing: 1         
  style/color_scheme: lost_temple      # 選擇配色方案

# 註:預設的配色方案及代碼(指定爲 style/color_scheme )
#   系統默認色系 - native
#   碧水 - aqua
#   青天 - azure
#   明月 - luna
#   墨池 - ink
#   孤寺 - lost_temple
#   暗堂 - dark_temple
#   星際我爭霸 - starcraft
#   谷歌 - google
#   曬經石 - solarized_rock
#   简约白 - clean_white

我比较喜欢横版布局,加上lost_temple的浅绿色很棒。

例外程序

之前用百度输入法的时候,有一个功能我非常喜欢。就是可以自定义例外程序,在这些程序里面使用英文输入法。例如,**我经常需要打开iTerm2或者VS Code,我希望我在用这两个程序的时候,输入法默认切换到英文输入。**这个功能对于程序员来说我觉得挺重要。我们也可以通过定制鼠须管来实现。

squirrel.custom.yaml中,添加

app_options/com.apple.Xcode:
    ascii_mode: true # 英文模式

app_options/com.apple.Xcode:
    {} # 不做改变,当前是中文就是中文,英文同理

这里需要注意的是这里是Info.plist的名称,做iOS开发的应该都明白。Mac上面我们可以通过下面的命令获取:

osascript -e 'id of app "Finder"'
com.apple.finder

将Finder提换成你需要自定义的软件即可。贴一下我常用的软件配置

  app_options/com.apple.Xcode:
    ascii_mode: true
  app_options/com.googlecode.iterm2:
    ascii_mode: true
  app_options/com.google.android.studio:
    ascii_mode: true
  app_options/com.jetbrains.pycharm:
    ascii_mode: true
  app_options/com.microsoft.VSCode:
    ascii_mode: true
  app_options/org.vim.MacVim:
    ascii_mode: true
  app_options/com.velestar.vssh.osx:
    ascii_mode: true
  app_options/com.runningwithcrayons.Alfred-3:
    ascii_mode: true

别忘记,保存文件后,Deploy

Enjoy!

Ref: