Native & OS 输入法管理包『sis』使用交流

evil-insert-state和evil-emacs-state是两个不同的state啊,你在evil-emacs-state相关的hook里加就行了

不清楚有哪些hook,示例一下?

在这里提的需求,sis中是否有实现?readme文档未提及。环境:Windows 10,GNU Emacs 28.2。

B这种情况,根据字符中英文状态自动切换输入法,设置(sis-global-inline-mode -1) 也不能禁用。

比如文本内容是“中文”,在后面输入空格,会自动切到英文

这个是inline mode,在中文中在线输入英文,完了再回到中文,整个过程不需要手工切换输入法。不少用户特别喜欢这个功能。你要是不喜欢的话,不开inline mode就行了。

其实英文中在线输入中文也可以,有相关的变量可以控制。

你如果不希望根据上下文自动切换人相应的输入法, 可以自己定制:

  1. sis-context-fixed:指定切换到某个固定的输入法,见 https://github.com/laishulu/emacs-smart-input-source/blob/fa795514cdeff7e3ab054fa8977997d99d49b1a5/sis.el#L126

2.sis-context-detectors:用自己的上下文检测子,见

嗯,设置了(sis-global-inline-mode -1)中英文输入中切换是禁用了,因为我在用的过程中发现是输完英文,移动光标到中文字符,它不会自动切到中文,就是变回英文很容易、变回中文难,不太适应。

从normal回到insert,有变量能控制不根据光标处字符直接恢复输入法吗?

如果你用GUI的话,可以用emacs mac-port,自带原生的输入法相关的api,不需要外部的切换工具,那个就很丝滑了。

brew tap railwaycat/emacsmacport
brew install emacs-mac --with-modules --with-rsvg --with-imagemagick --with-natural-title-bar
1 个赞

在实际用的时候,由insert-state回到normal-state就是正常的,由emacs-state回到normal-state不是马上自动切到英文,要在normal-state下多按一次esc才切换,奇怪。

这是你不会用哈。。。

中文 English之后,你输入两个空格,或者回车,再看看。
这个是默认的设计,但是每个人的习惯不一样,
你可以通过变量控制前后空格,几个空格触发切换等等
当时一边写这个包,一边在这里收集用户反馈,
这块的变量极其多和灵活,没有发现覆盖不了的使用习惯。

有啊,我之前回复过了,下面这个回复里面的第一条

我前面说了,代码里面没有处理过emacs-state(这个是啥东西?我不知道啊,是evil里面的么?),你可以参照代码自己重新定义一下相关的变量和函数。

是evil定义的几个state之一

用过了, 中文 English之后,输入两个空格,是会自动切回英文,回删空格,自动切到中文;但是如果不是回删,而是移动光标到中文后面,并不会自动切回中文。

是笔误了?应该是自动切回到中文吧。
另外,
英文之后直接回车也可以结束inline mode,
这块也可以设置成一个空格就结束inline mode

肯定是不需要回删空格的。
默认在中文里的在线编辑的英文左右各留一个空格,
但也可以通过设置变量,不留空格。

你对这一块敏感,
其实是和inline mode非常契合的潜在用户
认真学一下这块很可能收益极大。

我用过的总体感觉是,从中文切到英文是正常的,但是加了背景色,和当前行高亮色叠在一起,输入字母看不清是什么;从英文切到中文,很难。

可以自定义背景色,有个face变量。

双空格或者回车,都会关闭region,自动切回中文啊。

如果你不想inline mode中编辑英文句子,
设成但空格自动关闭region,会更方便。

当然如果你已经很烦躁不想再体会,
那我也不再继续解释。

发现 sis-default-cursor-color是black,貌似在doom theme加载完之前sis就初始化了,导致开始输入法后光标就变成黑色了。

然后发现光标自动变色根本不工作,懒得研究,直接把 global cursor color mode关了。

Doom Emacs + 最新版sis + macOS + Squirrel。

用的sis-global-cursor-color-mode 升级29.1之后,光标变色延迟很多,目测1秒多,有遇到的吗

GNU Emacs 29.1 (build 1, aarch64-apple-darwin21.6.0