在 Emacs 中使用外部输入法,最大的问题是在切换 evil 的模式的时候,对输入来讲会有延迟,由于须要手工将输入法切换到对应的英文模式,才能正常使用快捷键。git
可是若是使用的是 Emacs 本身的输入功能,则不须要作这些同步,只须要从 insert 模式中退出便可,这种操做对 Emacs 来讲真的是太方便了。github
通过几回尝试以后,一点点测试出了配置过程当中出现的问题,如今整理以下。shell
由于本人使用的是 Mac 系统,因此须要先安装一些工具。xcode
brew install cmake git boost
这三个工具是编译 liberime 用的,原本想从 GitHub 上下载,可是有问题,因此决定本身编译一份,这里测试了一下,只使用 CommandLineTools 是不行的,须要安全安装 xcode 才能够。安全
git clone --recursive https://github.com/rime/librime.git
cd librime make xcode/thirdparty
make xcode
编译这个是依赖于 librime 文件的,须要先将依赖引进来。app
git clone git@github.com:merrickluo/liberime.git
export RIME_PATH=~/DEV/librime
make liberime
若是不想本身编译的话,也能够直接下载我编译好的文件,可是须要把文件存放到一个指定的路径下。ide
下载路径:liberime.so工具
在增长配置以前,先检查一下 Emacs 是否支持 module-load
若是不支持,请优先安装支持的版本,建议使用 emacs-mac 中的版本。测试
(use-package pyim :demand t :diminish pyim-isearch-mode :init (setq default-input-method "pyim" pyim-title "ㄓ" pyim-default-scheme 'rime pyim-page-length 7 pyim-page-tooltip 'proframe) :config (setq-default pyim-english-input-switch-functions '(pyim-probe-dynamic-english pyim-probe-evil-normal-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-isearch-mode t) :bind ("M-j" . pyim-convert-string-at-point)) (use-package liberime :load-path (lambda () (expand-file-name "rime" user-emacs-directory)) :custom (rime_share_data_dir "/Library/Input Methods/Squirrel.app/Contents/SharedSupport/") (rime_user_data_dir (expand-file-name "rime" user-emacs-directory)) :init (module-load (expand-file-name "liberime.so" user-emacs-directory)) :config ;; 配置同步文件夹 (liberime-start rime_share_data_dir rime_user_data_dir) (liberime-select-schema "wubi86")) (use-package posframe) (provide 'modules-pyim)
重启 Emacs 就可使用 pyim 替代原有的输入法了。ui
文章首发于:https://www.zucchiniy.cn