欢迎尝试 emacs-rime,计划中功能已全部完成。

选单应该可以用,我试试 emacs -q,再不行就提个 issue

如果你不是用 straight 的话,项目目录下执行 make test 可以方便的启动 emacs -Q 。

emacs -q 测试了一下,貌似是 rime 的配置问题,换 mac rime 的配置是可以用的

找不到配置错在哪里,尴尬,不过直接把配置换了就好了。

rime-sync 现在会在 rime 配置的目录下生成一个 sync 文件夹,能够加一个配置,把这个文件夹的位置自定义一下吗?

我看是直接调的 C 的 lib 了

可以在 installation.yaml里设置sync_dir:

1 个赞

请教一下: 在这个gif图中,第一行rime前后自动切换好理解,检测到空格就自动切换了是吧? 但是,同样的规则的话,第二行 auto switch,你如何做到在auto 和 switch之间不自动切换到中文输入法的呢?

这和 emacs-rime 无关,是 rime 的功能,正如上面这位仁兄解释的,如果没有在 installation.yaml 里指定 sync_dir 的话,就会在rime的用户目录里新建一个sync目录。你在系统rime执行一下“同步用户数据”应该也会有一样的表现。

1 个赞

参见文档中的 inline ascii 模式。

如图简单配置,编译没报错。系统上选择鼠须管输入法,在当前buffer激活rime-mode,打字没反应,反应的还是系统的鼠须管。激活rime-active-mode,一样的反应,而且退格键和return键不可用,打词或连打都只能上屏首个字。

系统:macos 10.15 emacs:emacs-mac 26.3

麻烦大佬看看,谢谢!

rime-mode 和 rime-active-mode 都不是用来手工激活的。正确的做法是激活 emacs 内的输入法。

默认的快捷键是 C-\

:sweat_smile:我就猜到是激活的问题,还没用过emacs的输入法,不知道有c-\。真的帅,谢谢!

我仔细查看了一下, 不知道哪些predicate的组合可以达到这个效果, 还请指点。

一共有两个变量,分别是 rime-disable-predicates 和 rime-inline-predicates.

我自己的配置是这样的

rime-disable-predicates 断言成立关闭输入法

user/rime-predicate-not-in-insert-mode

针对自己的模式编辑的断言 ,如果你用 evil 的话,使用内置的 rime-predicate-evil-mode-p

rime-predicate-prog-in-code-p

在写代码的 major mode 里面,光标在代码中(即除了注释和字符串)

rime-predicate-after-alphabet-char-p

光标在英文字母的后面

rime-inline-predicates 断言成立进入 inline ascii 模式

rime-predicate-space-after-cc-p

光标在一个中文+空格的后面

rime-predicate-current-uppercase-letter-p

光前的输入字符是大写字符

user/rime-predicate-is-back-quote-or-tilde

自己写的,光标在 ` 或 ~ 后面

更复杂的用法可以参考比如

3 个赞

超级强大和灵活 :+1:

但是我在脑子中过了一下,还是没有明白gif图中的机制。

  1. rime-predicate-space-after-cc-p 从中文切换到英文, 这一条在rime行和auto switch行都引起了自动切换到英文。
  2. rime后面如何自动切换成中文的,你这里的配置看不出来。 像是有个space-after-alphabet的东西。
  3. 如果有space-after-alphabet引起的切换到中文, 那么在auto switch行的auto 之后就已经自动切换到中文了。

断言是单向的,逻辑上不是中英互切,而是成立时关闭/inline ascii,不成立即是中文。

其实还可以添加一个处理接口,就是对词条动态排序,根据当前环境,对词条排序,也许会得到更加智能的输入法

好的。不成立的时候就输入中文。

在 " 使用 rime ^那么",这里,因为不成立,所以输入中文。 但在"auto ^switch"里面,又触发了那一条呢? 这三条都不满足啊: rime-predicate-space-after-cc-p rime-predicate-current-uppercase-letter-p user/rime-predicate-is-back-quote-or-tilde

这不是手动切换到 inline ascii mode 吗?

请注意,在进入 inline_ascii 后,除按回车外,任何字符都会作为英文字符原样输出,直至回车后上屏,再继续断言判断逻辑。