emacs-rime 中也有一个 inline 的功能。
是的,感觉很奇怪。操作系统的得用im-select了吧,我之前试过,会有些别的问题。感觉windows上就是麻烦
@goumao 要怎么结合meow使用?我在另外一个帖子中看到了系统输入法结合Meow的使用。但是挂载emacs-rime使用没有搞定。
(require 'sis)
(require 'rime)
(setq rime-user-data-dir "~/.local/share/fcitx5/rime/")
(setq default-input-method "rime")
(setq rime-show-candidate 'posframe)
(setq-default smart-input-source-english nil)
(setq-default smart-input-source-other default-input-method)
(setq-default smart-input-source-do-get (lambda () current-input-method))
(setq-default smart-input-source-do-set
(lambda (source)
(unless (equal source current-input-method)
(toggle-input-method))))
;;(sis-ism-lazyman-config "1" "2" 'fcitx5)
(sis-global-respect-mode t)
(sis-global-context-mode t)
(sis-global-inline-mode t)
(defvar meow-leaving-insert-mode-hook nil
"Hook to run when leaving meow insert mode.")
(defvar meow-entering-insert-mode-hook nil
"Hook to run when entering meow insert mode.")
(add-hook 'meow-insert-mode-hook
(lambda ()
(if meow-insert-mode
(run-hooks 'meow-entering-insert-mode-hook)
(run-hooks 'meow-leaving-insert-mode-hook))))
(with-eval-after-load 'sis
(add-hook 'meow-leaving-insert-mode-hook #'sis-set-english)
(add-to-list 'sis-context-hooks 'meow-entering-insert-mode-hook)
)
上面的设置不起作用。但是如果我comment out (sis-ism-lazyman-config "1" "2" 'fcitx5)
可以触发系统输入法。
哎哎呀。。。。。。
很久之前,smart-input-source-do-get
就改成 sis-do-get
了。
所有smart-input-source-
前缀都改成 sis-
了。
以最新版的readme为准啊。
谢谢,
改完后可以切,但是进minibuffer,输入法也会变,很奇怪。
meow emacs-rime sis 感觉先判断出是哪两个之间有问题,毕竟是三个东西
(require 'sis)
(require 'rime)
(setq rime-user-data-dir "~/.local/share/fcitx5/rime/")
(setq default-input-method "rime")
(setq rime-show-candidate 'posframe)
(setq-default sis-english nil)
(setq-default sis-other default-input-method)
(setq sis-do-get (lambda() current-input-method))
(setq sis-do-set
(lambda(source)
(unless (equal source current-input-method)
(toggle-input-method))))
(sis-ism-lazyman-config sis-english sis-other 'native)
(sis-ism-lazyman-config nil "rime" 'native)
;; (sis-global-cursor-color-mode t)
(sis-global-respect-mode t)
(sis-global-context-mode t)
(sis-global-inline-mode t)
(defvar meow-leaving-insert-mode-hook nil
"Hook to run when leaving meow insert mode.")
(defvar meow-entering-insert-mode-hook nil
"Hook to run when entering meow insert mode.")
(add-hook 'meow-insert-mode-hook
(lambda ()
(if meow-insert-mode
(run-hooks 'meow-entering-insert-mode-hook)
(run-hooks 'meow-leaving-insert-mode-hook))))
(with-eval-after-load 'sis
(add-hook 'meow-leaving-insert-mode-hook #'sis-set-english)
(add-to-list 'sis-context-hooks 'meow-entering-insert-mode-hook)
)
搞定,之前的配置中少了 (sis-ism-lazyman-config nil "rime" 'native)
这一句。
作者的readme写的很详细,之前没好好看。
emacs-rime sis meow 很好的结合在一起用。
p.s.
fcitx5 在我的环境下,emacs中打字经常出现丢字现象,很难受。用emacs-rime就没这样。
(defvar meow-insert-enter-hook nil
"Hooks run when enter insert state.")
(defvar meow-insert-exit-hook nil
"Hooks run when exit insert state.")
Meow 现在已经内置了这两个 hook。不用再自己定义了。
本来进minibuffer就会变啊。
这是专门设计的。
因为基本上,
minibuffer里面都是要输入英文指令。
如果正文是中文
每次进minibuffer不自动变成英文的话,
那就很痛苦了。
Thanks. @DogLooksGood @goumao
有个问题是meow的keypad模式在org-capture-mode中不能用SPC c c 替代 C-c C-c,按下SPC c 后没有反应,像卡住了一样。我排查了不是meow的问题,而是上面配置的sis引入的。关闭sis后一切正常。