我一直在后悔呢~~~想给改成sis
刚才将sis,names,termiXXX 都删除了 ,重新mepla安装,还是会出问题, 进入 elpa/sis 里将 .elc 文件删掉就没问题
感觉使用 names 后,代码看着怪怪的,干脆全替换了 ,省掉这个依赖,并且这时可以将个别需要配置的长变量改成别名形式不就省事一些
这个是个bug
不关evil normal
的事。
不应该出现的。
从minibuffer退出来,应该恢复之前的输入法
已经fix了。
捉bug不容易捉全。
建议:无论执行任何命令,在焦点回到正文之时,先判断是否为normal模式。如果是,则必然是英文状态。
现在就是这样的。
你描述的规则,只是现在的设计的一个子集。
你去执行命令之前,必然要先到normal模式,normal模式就是英文的。
然后呢,现在你执行任何命令(不局限于你的替换的场景)结束之后,
都会恢复原文档的输入法,当然就是英文的。
如果有问题,那就是有bug,就必须要从根上解决掉。
做个简化版的动机在什么地方呢?
其实主要是方便修改
我还是没搞明白command的normal prefix sequence stage 是怎么判断的
如果有什么现在smart-input-source没有的特性
但你又想实现进imbot
里面的,
还请提出来。
我看看是否需要也做进smart-input-source里。
代码里面有嘛。
- C-x 被截取了,就从normal stage的pre里面直接短路,进入了pre prefix stage
- pre prefix stage里面,禁止截取prefix key,并且保存相关状态
- -prefix-override-handler 里面把prefix key放回event loop里
- post prefix stage 里面转换状态到 sequence stage
- 用户继续输入b(现在是C-x b)
- 这个时候是pre sequence stage, 啥也不干
- 在post sequence stage里面,分成多种情况:
- C-x x y z 这种多层一系列的key sequence,每次都还是在sequence stage里面
- 中途 C-g 退出的key sequence,这时候要回到normal
- key sequence 完成了,映射到命令,这时候也要回到normal。
你也可以不这么实现。
只不过用状态装换的方式,逻辑比较清晰。
(smart-input-source-global-follow-context-mode t)
请问下这个功能是用在什么地方,怎么用?我关闭的时候出现错误
let: Wrong number of arguments: (2 . 3), 4
-
这个bug刚才fix了。
-
关于这个mode:
默认值是起这个作用:当你从evil normal state进入到evil insert state时,会自动根据上下文切换输入法。比如你光标在汉字中间进入插入状态,输入法会自动切换到中文。 非evil用户的话,你可以定制这个变量,把别的触发条件也加进去。比如emacs原生用户,可能把光标移动加进去,自动触发切换。但我不是emacs原生用户,不清楚操作习惯,这块就留白了,让用户自己决定。
你好 我有这样一个诉求,请问应该怎么配置
情况
下面图1中,快捷插入同级header后,变为图2后我想直接输入中文。但是输入法切换被接管了,系统默认(Linux ibus)切换按键无效,只能通过内置的‘smart-input-source-switch’切换
- 图1
- 图2
问题
请问可以通过配置调整为,在进入‘编辑’模式后不接管输入法的切换吗? 发现输入状态不符合使用情况,第一反应就是使用默认的输入法切换方法。github文档看了下,也没整明白。
现在的配置:
- 不会的。设计上来讲,smart-input-source (记为sis)不会接管OS的快捷键。
你可以详细描述一下这一步么?
OS切换的快捷键,有或者无sis的情况下的差别。
我来分析一下是什么原因 - 前面有个用户提过相同的问题。sis这种情况下,并不会切换输入法,
别人汇报过同样的问题,后来发现应该用M-enter,详情请见:
请见 org-mode模式下,item换行切换输入法的问题 · Issue #10 · laishulu/emacs-smart-input-source · GitHub - 根据上下文自动切换输入法是follow-context-mode,
但是默认只对进入evil insert state有效
见 (重新设计)中英文混打:OS输入法管理包 smart-input-source - #775,来自 goumao
如果你不想开这个功能,可以那一行配置删掉,或者设置为-1
注意 不能设置成nil
。在emacs中,mode设置成nil
和设置成t
效果是一样的。
你好,我使用fcitx5
,最新版本的懒人配置函数smart-input-source-ism-lazyman-config
却不能控制输入法。
smart-input-source-ism-lazyman-config
的配置是
(smart-input-source-ism-lazyman-config nil nil 'fcitx5)
按照之前版本的配置却是可以控制输入法的,配置是
(require 'subr-x)
(setq-default smart-input-source-english "1")
(setq-default smart-input-source-other "2")
(setq-default smart-input-source-do-get
(lambda() (string-trim (shell-command-to-string "fcitx5-remote"))))
(setq-default smart-input-source-do-set
(lambda(source)
(pcase source
("1" (string-trim (shell-command-to-string "fcitx5-remote -c")))
("2" (string-trim (shell-command-to-string "fcitx5-remote -o"))))))
多谢解释,感觉我不太会用上,不会定制这个变量哈哈
还有一个小问题,就是通过melpa升级的时候,会先删除旧的包,再安装新的包,这个过程中一直会弹出
Error running timer auto-refresh 未定义的警告信息
我只能关闭emacs,再重新打开一次,不算什么大问题,就是感觉升级的时候有点烦心,如果能不关闭Emacs无痛升级就太好了
好像仍然不行
这是我的配置
(use-package smart-input-source
:quelpa (smart-input-source :fetcher github :repo "laishulu/emacs-smart-input-source")
;; :hook
;; enable the /follow context/ and /inline region/ mode for specific buffers
;; (((text-mode prog-mode) . smart-input-source-follow-context-mode)
;; ((text-mode prog-mode) . smart-input-source-inline-mode))
:config
(smart-input-source-ism-lazyman-config nil nil 'fcitx5)
;; enable the /cursor color/ mode
(smart-input-source-global-cursor-color-mode t)
;; enable the /respect/ mode
(smart-input-source-global-respect-mode t)
;; enable the /follow context/ mode for all buffers
(smart-input-source-global-follow-context-mode t)
;; enable the /inline english/ mode for all buffers
(smart-input-source-global-inline-mode t)
)
谢谢反馈
愚蠢的bug,已修复。
请继续反馈。