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

可以看看万能的某宝,有便宜的。 :grin:

有没有SIS和evil配合使用的最佳实践呀

就正常用evil就行了,
config就照readme写。
需要啥最佳实践?

我自己就是用evil的。
respect-mode开了后,
evil的normal模式下,escape可以自动关闭输入法,
这个是最大的需求吧~~~

1 个赞

没仔细研究,但我现在碰到的三个情况: 1、在中文输入下ESC进入英文,但再按i进入插入模式时,没自动进入中文状态 2、在中文状态时按C-a等正常,但按C-x x时是中文输入模式 3、evil-escape 比如jk不能使用

1、在中文输入下ESC进入英文,但再按i进入插入模式时,没自动进入中文状态

你follow-context-mode开了么?
我在readme的config example中,是开了的。

下面是个use case:
this is a 测^试,
当光标在^时,你是中文状态,
esc之后,进入evil的normal模式,自动切换到英文
然后你跳到 is前面,肯定是不应该仍然是中文状态的。
follow-context-mode会在evil-insert的时候,根据上下文自动切换输入法。

你要是强制自动切换到中文的话,
(setq sis-follow-context-fixed 'other)
readme中有这个变量的说明。

你respect-mode开了没?
C-x 执行之后,会自动切换到英文输入法。
但你继续执行x
那要看你C-x, x 绑定的是什么函数了。
如果仍然停留在本buffer,是会自动切回中文输入法。

如果你要强制绑定的函数执行之后,自动切英文,
可以看看下面两个函数:

  • sis-respect-go-english-triggers
  • sis-respect-restore-triggers

readme中都有

1 个赞

你是说esc进入到evil的normal模式之后,
不能使用jk行间移动光标么?
没有人报过这个问题,代码里也不处理这个。
你先看下,你的jk绑定了什么函数。

谢谢解答,我还需要好好看说明才行。 :sweat_smile: 第一个问题是我RIME的配置问题,RIME进入时首先是英文。改过其他输入法是正常的,很方便。

第二个和第三个问题我再去试试。 :handshake:

@driftcrow

新增: sis-follow-context-detectors

用户可以自定义上下文检测子。

请问org-mode下<C-ret>该如何使用sis直接输入中文呢?

M-ret

org-mode 下C-ret新建项目直接中文的问题,
我这几天来解决一下。

用了 evil-escape 设定 “kj” 来切换 insert 模式到 normal 模式。

想问下有什么办法可以在 insert 模式且是中文输入法的状态下,实现 “kj” 进入到 normal 模式么?

这个问题困扰了很久。之前用 vscode 的 vim 插件也是,输入法会捕获kj输入,从而没法进入到 normal 模式。(而且vscode映射kj到escape后还会有bug)

这个没办法,因为你输入k的时候,k会被输入法截走,emacs根本看不见。

直接输入 “jk” 然后上屏不就可以吗?如rec

1 个赞

原来,要按一下回车。比vscode的方案要好一些。 要是能省掉回车就更好了。

!!! 不兼容更新


所有符号中的`-follow`都需要删掉。
比如 `global-folllow-context-mode` 改名为 `global-context-mode`

功能更新


支持org mode中C-RET新建item时,自动切换输入法。
底层代码写好了,但是默认的配置只支持doom。

此处需要原生emacs用户的帮助:

  1. 安装 https://melpa.org/#/command-log-mode
  2. 开启 command-log-mode,并 toggle command log mode buffer
  3. 在org mode buffer中,通过C-RET新建item,
  4. 在log mode buffer里面,看触发了什么命令。
  5. 将此命令报给我。
  • macOS Catalina 10.15.7 | Doom Emacs | Emacs Mac Port 27.1
  1. org buffer 内容(中文输入是用 M-x sis-switch切换的)
* impossible
* 不可能
* bukexr
* mpgm
  1. command-log-mode buffer 内容:
<C-return> +org/insert-item-below
i          org-self-insert-command [10 times] 
<C-return> +org/insert-item-below
M-x        counsel-M-x [2 times]
b          org-self-insert-command [8 times] 
DEL        evil-delete-backward-char-and-join [8 times] 
不         org-self-insert-command [3 times] 
<C-return> +org/insert-item-below
b          org-self-insert-command [6 times] 
<C-return> +org/insert-item-below
m          org-self-insert-command [4 times] 

谢谢,不过不需要你这个信息。
我也用的doom,所以内置了对doom下org的支持。

有别的原生emacs键位的用户,
我需要他们提供信息,以内置支持
否则,用户需要自己配置sis-context-triggers变量。

现在你在org下用没问题吧。

在中文标题上 C-RET,会在新标题上切到中文输入法
在英文标题上 C-RET,会在新标题上切到英文输入法

我在Mac 10.15.7 上测试,没有楼上提到的问题,C-RET 一切正常。 Emacs 版本是自己编译的master 28.0.50。 Emacs 原生键位。