在 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