使用反馈:smart-input-source 挂 emacs-rime

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为准啊。

谢谢, :rofl:

改完后可以切,但是进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写的很详细,之前没好好看。 :rofl:

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后一切正常。