我用的 meow,自己写了个 hook 在回到 normal mode 下变为英文,没有这样的问题。
有对应配置参考吗?
主要是就是在 meow 中根据 meow-insert-mode-hook 写了个进入和离开 insert-mode 的 hook,参考
然后加了
(add-to-list 'sis-context-hooks 'meow-entering-insert-mode-hook)
(add-hook meow-leaving-insert-mode-hook #'sis-set-english)
这样退出 insert-mode 就可以了。
另外从其他应用切换回来时,有时候也会带过来中文输入法。加了下面 focus 的时候触发
(defun lucius/meow-focus-change-function ()
(if (frame-focus-state)
(sis-set-english)
(meow-insert-exit)))
(add-function :after after-focus-change-function 'lucius/meow-focus-change-function)
好, 感谢。
after-focus-change-function
代码中处理了的。
但是有时候还是不行??
macOS系统里有个设置,不知道你有没有设:
系统设置》键盘》文字输入》输入法:编辑》自动切换到文稿的输入法。
很早以前就有么?
对,从最开始就有。
这个是GUI的focus处理, 1066行还有对terminal的focus的处理。
我想起来了,我的这个加在这里主要是为了离开 Emacs 的时候统一退出到 normal mode,至于为什么这么做,好像是以前从其他 app 回来会有点问题,我从 macsim 换成了 im-select,就不会有之前 macsim 切换输入法错误的问题了,有空我把这些 hack 去掉再试试。
一切都正常,除了在中文环境中输入不了中文,其他功能都可以,这一点怎么回事。 我的emacs现在使用的是emacs-mac 29版本的(Mac系统),之前在emacs plus 29上还是可以正常使用的。对应的配置基本上就是包说明文档中的默认配置。mac系统权限也给其权限了。
请教各位大佬,按照github的配置,发现按ESC退出insert模式,进入normal模式,输入法不会自动切换为英文,怎么解决?
使用test.e测试:emacs -Q -l .emacs.d/test.el
(require 'package)
(setq package-archives '(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("nongnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/nongnu/")
("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
;; (setq package-archives '(("myelpa" . "~/myelpa/")))
(package-initialize) ;; You might already have this line
(use-package evil
:ensure t
:defer 2
:init
(setq evil-want-C-i-jump nil)
:config
(evil-mode 1)
)
(use-package sis
:ensure t
:config
(sis-ism-lazyman-config "1" "2" 'fcitx5)
;; enable the /cursor color/ mode
(sis-global-cursor-color-mode t)
;; enable the /respect/ mode
(sis-global-respect-mode t)
;; enable the /context/ mode for all buffers
(sis-global-context-mode t)
;; enable the /inline english/ mode for all buffers
(sis-global-inline-mode t)
)
让 sis 在 evil 之后加载尼
感谢,已经解决了。
(use-package evil
:ensure t
:defer 2
:init
(setq evil-want-C-i-jump nil)
:config
(evil-mode 1)
)
(use-package sis
:ensure t
:after evil
:config
(sis-ism-lazyman-config "1" "2" 'fcitx5)
;; enable the /cursor color/ mode
(sis-global-cursor-color-mode t)
;; enable the /respect/ mode
(sis-global-respect-mode t)
;; enable the /context/ mode for all buffers
(sis-global-context-mode t)
;; enable the /inline english/ mode for all buffers
(sis-global-inline-mode t)
)
分享一下我的配置,sis 与 meow 相关的配置我只用这两句:
(add-hook 'meow-insert-exit-hook #'sis-set-english)
(add-to-list 'sis-context-hooks 'meow-insert-enter-hook)
这个问题还有坛友遇到过吗?我最近频繁触发,然后 debug-on-quit
也没看出什么名堂,想问问有没有什么解决办法
我在 minibuf 下面有时候需要输入中文
(dolist (trigger '(aider-code-change aider-region-refactor aider-ask-question
aider-architect-discussion
aider-general-command aider-help))
(add-to-list 'sis-respect-minibuffer-triggers
(cons trigger (lambda () 'other))))
我配置了一下,一开始进入 minibuffer 下面是自动切换成了中文,但是一旦我输入一个词语结束以后,就又自动切换成了英文,然后我想继续输入 中文 还得手动切换一下输入法,然后输入完了以后又自动切换会英文,有办法让这种情况下不要自动切换回 英文 吗?
有空我给加到README中
有空我研究一下,好久没碰了