rime

rime 是一款输入引擎,它开放了一套配置协议,为多元的输入法(同文输入法、鼠须管输入法等)的基础,输入法和rime引擎之间通过这套协议实现多样化的输入方案。

官方解释:rime是啥? > Rime 不是一种输入法。是从各种常见键盘输入法中提炼出来的抽象的输入算法框架。因为Rime 涵盖了大多数输入法的「共性」,所以在不同的设定下,Rime 可化身为不同的输入法用来打字。

下載及安裝 | RIME | 中州韻輸入法引擎

输入方案

rime是一款开源的输入法引擎,约定了配置规范,根据这套规范可以定制自己的 输入方案 ,由此,应运而生配置管理工具 東風破 plum 维护着大量优秀的 输入方案

官方解释: >要让Rime 实现某种具体输入法的功能,就需要一些数据来描述这种输入法以何种形式工作。即,定义该输入法的「个性」。 >如「汉语拼音」、「注音」、「仓颉码」、「五笔字型」,这些方法可凭借Rime 提供的通用设施、给定不同的工作参数来实作。以本文介绍的规格写成一套套的配方,就是Rime 输入方案。

常用的输入方案:rime-luna-pinyin: 【朙月拼音】輸入方案

如果想定制键位/快捷键可以参考: CustomizationGuide · rime/home Wiki · GitHub

创建自己的 输入方案RimeWithSchemata · rime/home Wiki · GitHub

安卓版:trime

详细的文档 :trime.yaml詳解

trime输入方案

使用输入法配置库:rimerc, 大牛配置好的配置,包括同文和squirrel 配置。

配置路径在/sdcard/rime, 将rimerc 库中的trime.z7 解压到该目录。

rimerc 库内容已经变化,作者还没有更新readme.

定制候选词条的个数

default.custom.yaml 文件中添加

1
2
  patch:
    menu/page_size: 10

隐藏侯选框的方法

luna_pinyin.schema.yaml 定制:

1
2
  - name: _hide_candidate
   reset: 0  #默认开启这个开关,隐藏候选栏

设置输入法偏好

  • 汉字与小写半角
  • 汉字与中文标点配套
  • 英文与英文标点

luna_pinyin.schema.yaml 定制:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
switches:
  - name: ascii_mode
    reset: 1
    states: [ 中文, 西文 ]
  - name: full_shape
    states: [ 半角, 全角 ]
  - name: simplification
    reset: 1
    states: [ 漢字, 汉字 ]
  - name: ascii_punct
    reset: 0
    states: [ 。,, ., ]
#  - name: _hide_candidate
 #   reset: 0  #默认开启这个开关,隐藏候选栏
      # 这个按键用来收起软键盘
#  - options: [ _key_Control_L ]
#    states: [ "CTRL" ]
#  - options: [ _key_Escape ]
#    states: [ "ESC" ]
#  - options: [ _key_Alt_L ]
#    states: [ "Alt" ]

键位设置

trime 键位分为两种,26键和36键

trime默认26键位,绑定键位的方法: querty

1
 "preset_keyboards/qwerty/keys/@26/click": date_time

开启36键位的方法: querty0

1
2
   "preset_keyboards/luna_pinyin/import_preset": qwerty0
   "preset_keyboards/qwerty0/keys/@43/long_click": Mode_switch

键位绑定支持两种方式:键位占用和键位长按

1
2
3
4
# click绑定键位
 "preset_keyboards/qwerty/keys/@26/click": date_time
# long_click绑定键位长按
 "preset_keyboards/qwerty/keys/@26/long_click": date_time
  • 声明键事件并绑定

    1. 声明方式使用 "preset_keys/custom_key":

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      
         # 参考trime.yaml内置的date键,新建一个按键date_time
           "preset_keys/date_time":
             command: date
             label: 时间
             option: "yyyy-MM-dd  HH:mm:ss"  #通过`option`参数控制输出的日期和时间格式
             send: function
      
          #Clear: {label: 清除, text: "{Control+a}{BackSpace}"} #全選並刪除
           "preset_keys/cg":
             label: 撤销
             send: Control+g
           "preset_keys/cc":
             label: 完1
             text: "{Control+c}{Control+c}"
           "preset_keys/control":
             label: CTR
             send: Control_L #space+colon
    2. 用data_time替换原预设26键键盘中的time

      1
      2
      3
      
           "preset_keyboards/qwerty/keys/@26/long_click": date_time
           "preset_keyboards/qwerty/keys/@33/long_click": Mode_switch
           "preset_keyboards/qwerty/keys/@36/long_click": todo
    3. 让朙月拼音使用36键键盘布局

      1
      2
      3
      4
      
            "preset_keyboards/luna_pinyin/import_preset": qwerty0
            "preset_keyboards/qwerty0/keys/@36/long_click": date_time
            "preset_keyboards/qwerty0/keys/@43/long_click": Mode_switch
            "preset_keyboards/qwerty0/keys/@46/long_click": todo

定制长按空格键切换中英文

trime.custom.yaml 中定制如下操作: Mode_switch 是切换中英文事件,区分大小写。绑定到空格的键位 @33 上。

1
    "preset_keyboards/qwerty/keys/@33/long_click": Mode_switch

定制长按Enter键输入 ~ - [ ] ~

trime.custom.yaml 中定制如下操作:声明输入的文本

1
2
3
  "preset_keys/todo":
    label: "- [ ]"
    text: "- [ ] "

添加到长按事件中

1
    "preset_keyboards/qwerty/keys/@36/long_click": todo

状态栏添加菜单项

trime.yaml詳解 ·switches 在状态栏上添加按键:

示例: 在状态栏放置按键(试验功能) option 格式:

  1. _key_ + 按键 (这里的按键可以是功能键、符号、字母、任意文本)
  2. _keyboard_ + 键盘布局ID (一些比较特殊的id:.default返回当前主键盘,.next下一个键盘,.last在最近使用的两个键盘间轮换,.last_lock返回上一个标记为lock的键盘)

需要在方案文件的 xx.custom.yaml 中添加如下配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
switches:
  # 这个按键用来收起软键盘
  - options: [ _key_Hide ]
    states: [ "▼" ]
  #states是显示在状态栏的图标,options是实际执行的功能

  # 这个按键用来调出输入法切换菜单
  - options: [ _key_IME_switch ]
    states: [ "🌐" ]
  # 更多功能键请查阅trime.yaml/preset_keys

  # 这是一个空按键,按下去不会执行任何动作
  - options: [ _key_VoidSymbol ]
    states: [ "    " ] #空键的宽度由这里的空格决定

  # 这个按键用来输出句号
  - options: [ _key_period ] #period是句号的英文名,也可以直接写成[ _key_. ]
    states: [ "。" ]

squirrel

网上教程很多,输入法目录在~/Library/Rime 下,可以借助plum 工具安装. 本人使用rimerc 库中的配置,clone 之后,解压安装到Rime 目录即可. 设置多台设备同步:sync_dir: “Users/boyer/ResilioSync/RimeSync/squirrel

emacs-rime

安装 librime

  1. 先安装鼠须管,里面有输入法方案。

  2. 然后直接下载编译好的 librimeReleases 版本。

    1
    2
    3
    
       curl -L -O https://github.com/rime/librime/releases/download/1.7.1/rime-1.7.1-osx.zip
       unzip rime-1.7.1-osx.zip -d ~/.emacs.d/librime
       rm -rf rime-1.7.1-osx.zip

emacs 配置

在 doom 下安装

1
(package! rime)

偏好设置: rime-librime-root : 指定为安装 librime 的目录 ~/.emacs.d/librime/dist

 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
(use-package! rime
  :custom
  (default-input-method "rime")
  (rime-emacs-module-header-root "/Applications/Emacs.app/Contents/Resources/include/")
  (rime-librime-root (expand-file-name "librime/dist" user-emacs-directory))
  (rime-cursor "˰")
  (rime-show-candidate 'posframe)
  ;;https://emacs-china.org/t/doom-emacs-rime/12499/18?u=huos3203
;;  (rime-share-data-dir "/Users/boyer/Library/Rime")
;;  (rime-user-data-dir "/Users/boyer/Library/Rime")
  (rime-posframe-properties
   (list :background-color "#073642"
         :foreground-color "#839496"
         :internal-border-width 1
         :font "Input Mono Narrow"
         ))
  ;;
  (rime-disable-predicates '(rime-predicate-evil-mode-p
                             rime-predicate-after-alphabet-char-p
                             rime-predicate-prog-in-code-p))
  ;;; 具体参考 mode-line-mule-info 默认值,其中可能有其它有用信息
  (mode-line-mule-info '((:eval (rime-lighter))))
  ;;在 minibuffer 使用后自动关闭输入法
  (rime-deactivate-when-exit-minibuffer t)

  :config
  (set-face-attribute 'rime-default-face nil :foreground "#839496" :background "#073642")
  )

高低配置

  1. 设置默认输入法: Mx: rime-open-configuration 打开文件: ~/L.emacs.d/.local/etc/rime/default.custom.yaml,不存在时,新建。
1
2
3
patch:
  schema_list:  # 對於列表類型,現在無有辦法指定如何添加、消除或單一修改某項,於是要在定製檔中將整個列表替換!
    - schema: luna_pinyin_simp  #默认简体输入法
  1. 设置用户配置同步目录不能和 squirrel 共用同步目录,会出现配置无效等异常问题。 emacs-rime 同步目录: sync_dir: "/Users/boyer/ResilioSync/RimeSync/emacs-rime/"

有帮助的资料:作者总结经常问题:GitHub - DogLooksGood/emacs-rime: RIME ㄓ in Emacs