配置 emacs rime

安装

  1. 安装 librime, 其他系统参考:emacs-rime/INSTALLATION.org at master · DogLooksGood/emacs-rime

    sudo apt install librime-dev

  2. 安装 emacs rime rime 在 melpa 源中已经发布,故可以直接安装

配置

  1. 配置 emacs rime

    (use-package rime
      :custom
      (default-input-method "rime")
      :config
      (setq default-input-method "rime"
    	rime-show-candidate 'posframe);;
      (setq rime-user-data-dir "~/.config/fcitx/rime")
      ;; 设置断言,希望达到 pyim 的自动切换中英文的效果
      (define-key rime-mode-map (kbd "M-j") 'rime-force-enable)
      (setq rime-disable-predicates
    	'(rime-predicate-evil-mode-p
    	  rime-predicate-after-alphabet-char-p
    	  rime-predicate-space-after-cc-p
    	  rime-predicate-punctuation-after-space-cc-p
    	  rime-predicate-prog-in-code-p
    	  rime-predicate-after-ascii-char-p
    	  rime-predicate-current-uppercase-letter-p
    	  ))
      ;; 区别显示中英文输入状态
      (setq mode-line-mule-info '((:eval (rime-lighter))))
      ;;
      (setq rime-inline-ascii-trigger 'shift-l)
      ;; 设置 posframe 绘制样式
      (setq rime-posframe-properties
    	(list :background-color "#333333"
    	      :foreground-color "#dcdccc"
    	      :font "WenQuanYi Micro Hei Mono-14"
    	      :internal-border-width 10))
      (add-hook 'find-file-hook #'toggle-input-method)  ;; 打开文件时默认开启 rime
      )
    
  2. 配置系统的 rime

    在 emacs 中, 可以通过 M-x rime-open-shema, M-x rime-open-configuration 来打开配置文件的设置。emacs-rime 只是 rime 的前端,所有输入法相关的配置都在系统的 rime 的配置文件中完成。我需要使用的输入法是小鹤双拼,配置方法如下:

    • 安装双拼方案 sudo apt-get insatll librime-data-double-pinyin

    • ~/.config/fcitx/rime/default.custom.yaml 文件中添加小鹤双拼输入方案:

      patch:
        schema_list:
      ​    - schema: double_pinyin_flypy   # 新增小鹤双拼
      ​    - schema: luna_pinyin
      ​    - schema: cangjie5
      ​    - schema: luna_pinyin_fluency
      ​    - schema: luna_pinyin_simp
      ​    - schema: luna_pinyin_tw
      
    • 单独配置小鹤双拼的输入设置,在 ~/.config/fcitx/rime/double-pinyin-flypy.custom.yaml 中配置:

      patch:
        switches:                   # 注意缩进
      ​    - name: ascii_mode
            reset: 0                # reset 0 的作用是当从其他输入法切换到本输入法重设为指定状态
            states: [ 中文, 西文 ]   # 选择输入方案后通常需要立即输入中文,故重设 ascii_mode = 0
      ​    - name: full_shape
            states: [ 半角, 全角 ]   # 而全/半角则可沿用之前方案的用法。
      ​    - name: simplification
            reset: 1                # 增加这一行:默认启用「繁→簡」转换。
            states: [ 漢字, 汉字 ]
      

与 pyim 的比较

参考