关于 pyim 对 rime 支持的进展

@tumashu 大师能分享一下你的rime动态加载模块吗?,我用的debian 9, emacs26

我明天发给你吧,我是用 debian unstable 编译的,因为 testing 的 librime 版本太低

多谢!如果发邮件我的地址是 qiang.fang 艾特 zoho.com.cn

你如果用debian9的话,估计需要编译最新的librime, 自带的版本太低

删除候选项的按键设置是这样吗,这样写不生效:

patch:
  editor:
    bindings:
      Delete: delete_candidate

老哥 稳 :joy: 十分同意…

我没有单独设置,就是默认的,Ctrl-k即可

支持一个。今天试了本地编译一下,没弄成功。不懂C的伤啊。

@tumashu 我测试失败了。

以下是我的配置:

;;; [ pyim ] -- 一个 emacs 中文输入法,支持全拼,双拼和五笔.

(use-package pyim
  :ensure t
  :config
  (require 'pyim)
  (require 'pyim-basedict) ; 拼音词库设置,五笔用户 *不需要* 此行设置
  (pyim-basedict-enable)   ; 拼音词库,五笔用户 *不需要* 此行设置
  (setq default-input-method "pyim")
  (setq pyim-default-scheme 'quanpin)
  ;; improve performance
  (setq pyim-backends '(dcache-personal dcache-common pinyin-chars))
  
  (setq pyim-page-tooltip 'popup) ; 'popup, 'pos-tip,
  ;; (setq pyim-page-tooltip 'pos-tip
  ;;       x-gtk-use-system-tooltips t)
  ;; (setq pyim-page-style 'one-line)
  (setq pyim-page-length 5)

  ;; (setq pyim-isearch-enable-pinyin-search t)

  ;; 设置 pyim 探针设置,这是 pyim 高级功能设置,可以实现 *无痛* 中英文切换 :-)
  ;; 我自己使用的中英文动态切换规则是:
  ;; 1. 光标只有在注释里面时,才可以输入中文。
  ;; 2. 光标前是汉字字符时,才能输入中文。
  ;; 3. 使用 M-j 快捷键,强制将光标前的拼音字符串转换为中文。
  (setq-default pyim-english-input-switch-functions
                '(pyim-probe-dynamic-english
                  pyim-probe-isearch-mode
                  pyim-probe-program-mode
                  pyim-probe-org-structure-template))

  (setq-default pyim-punctuation-half-width-functions
                '(pyim-probe-punctuation-line-beginning
                  pyim-probe-punctuation-after-punctuation))
  )

;;; pyim support Rime with librime.

(module-load "/usr/lib/librime.so")

(use-package librime
  :load-path "/usr/lib/librime.so"
  :after pyim
  :config
  (defun setup-librime ()
    (interactive)
    (liberime-start "/usr/share/rime-data" "~/.emacs.d/rime/")
    ;; (liberime-get-schema-list)
    (liberime-select-schema "luna_pinyin_simp")
    (setq pyim-default-scheme 'rime))
  ;; work with pyim
  (add-hook 'pyim-load-hook 'setup-liberime))

其中 (module-load "/usr/lib/librime.so") 报错:

Debugger entered--Lisp error: (module-not-gpl-compatible "/usr/lib/librime.so")
  module-load("/usr/lib/librime.so")
  eval((module-load "/usr/lib/librime.so") nil)

为啥是GPL not compatible?

(use-package librime...) 部分报错:

Error (use-package): Cannot load librime

这个我无能为力,个人感觉,liberime的维护者似乎已经对liberime失去兴趣了

是liberime.so https://gitlab.com/liberime/liberime/, 不是rime的librime.so

Mac上 配置成功了 分享我的配置

编译好的 limerime.so 及其依赖的 librime 放在这两个位置了 vmacs/liberime.so at master · jixiuf/vmacs · GitHub vmacs/lib at master · jixiuf/vmacs · GitHub

将其link到/usr/local/lib下即可
find $(PWD)/lib -exec ln -fs {} /usr/local/lib/ \;

配合hammer spoon 的MenubarFlag插件,实现当切换输入法的时候 在dock 以醒目的颜色提示当前输入法状态

(add-hook 'input-method-activate-hook 'vmacs-evil-input-method-activate t)
(add-hook 'input-method-deactivate-hook 'vmacs-evil-input-method-deactive t)

(defun vmacs-evil-input-method-activate()
  (call-process  "open" nil nil nil "-g" "hammerspoon://input_method_switch?id=Squirrel" ))
(defun vmacs-evil-input-method-deactive()
  (call-process  "open" nil nil nil "-g" "hammerspoon://input_method_switch?id=U.S." ))

我是习惯于用left_command 单按来切换输入法 我希望实现在非Emacs App内按left_commmand时 来切换系统输入法(ctrl-space),而在emacs中按left_command时,则调用emacs的 evil-toggle-input-method (我给绑定到f16上了) 通过karabiner-element来实现的

我的rime定制输入法

1五笔拼音输入法 schema: wubi_pinyin_jixiuf 可以直接支持五笔和拼音混合输入,忘记五笔时,可以直接改用拼音输入,且会提示对应的五笔编码

直接 make 会将这些rime的配置 link到 ~/Libary/Rime下,注意 make之前备份你以前的rime配置

1 个赞

这两天对rime功能做了一些调整,配置方式有点变化,使用这个功能的同学可以看看pyim的readme

1 个赞