那你只能手工交换 english 和 other 的配置了。
但是,那样也有问题。
就是你打开minibuffer等,默认都是中文。
这个需求,倒是有点意思,
我考虑考虑能不能实现。
===更新====
搞一个 inline-chinese-mode,嗯,可以的。
那你只能手工交换 english 和 other 的配置了。
但是,那样也有问题。
就是你打开minibuffer等,默认都是中文。
这个需求,倒是有点意思,
我考虑考虑能不能实现。
===更新====
搞一个 inline-chinese-mode,嗯,可以的。
最新版已经可以实现了:
这一点不是预期的行为。除非你自己定制了。
with-english
选项默认是开的,打开emacs之后,默认是英文。
好用。多谢。
还会实现吗?
用上了。多谢。
挂 emacs-rime 的时候发现 smart-input-source-global-respect-mode 会让 (setq default-input-method "rime")
失效
respect-mode 并没有特别的对内置输入法进行处理。
所有和内置输入法有关的,就是你在配置的时候的挂接:
牵涉到 current-input-method
和 set-input-method
。
(setq-default smart-input-source-english nil)
(setq-default smart-input-source-other "rime")
(setq-default smart-input-source-do-get (lambda() current-input-method))
(setq-default smart-input-source-do-set (lambda(source) (set-input-method source)))
你说的失效,
是什么现象?
如何复现?
就是 (setq default-input-method "rime")
,describe-value 值是对的。如果 M-x smart-input-source-global-respect-mode,default-input-method 的值就变成 nil 了。
(use-package smart-input-source
:quelpa (smart-input-source :fetcher github :repo "laishulu/emacs-smart-input-source")
;; :hook ((after-init . smart-input-source-global-respect-mode)
;; (org-mode . smart-input-source-follow-context-mode)
;; (org-mode . smart-input-source-inline-mode))
:config
(setq-default smart-input-source-inline-tighten-head-rule 0
smart-input-source-inline-tighten-tail-rule 1)
(setq-default smart-input-source-other "rime")
(setq smart-input-source-english nil)
(setq smart-input-source-do-get (lambda () current-input-method)
smart-input-source-do-set (lambda (source) (set-input-method source))))
default-input-method
应该是和当前输入状态无关的变量?是 C-\
选择的输入法,自动设置英文为什么需要改变这个变量。ps 设置 smart-input-source-respect-start nil
也会改变 default-input-method
为 nil,并且设置不回去了。
是的,无关的变量。
本package操作的是current-input-method,不是default-input-method.
这个就很奇怪了。本package其实没有一行代码是关于内置输入法的。
唯一相关的地方,就是用户自己config进去的挂接代码。
就像和im-select/fcitx的处理一样。
我本地复现了。。。
正在查找原因。
你切到中文输入法,这个值也会变成rime
。
我一会写个新的配置example。。。通用配置。。。。
;; (setq-default default-input-method "rime")
(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))))
感谢,这个配置可以了,没有想到是 set-input-method
的问题,本来还以为你代码里改了什么。
我给更新到readme里面了。
这样别人也能避免踩坑。
很多功能确实是重复的,能merge到一起就好了。
都放在lazy-config里面了。