首先是测试 ShiftL 是不是真的能在 (系统的)Rime 中激活 inline ascii。
然后在 emacs-rime 当中,这个 inline ascii 是要通过断言自动激活的,通过 rime-inline-ascii-predicates
。 这里有问题的话,可能需要贴一下 这个变量和 rime-disable-predicates
的值。
首先是测试 ShiftL 是不是真的能在 (系统的)Rime 中激活 inline ascii。
然后在 emacs-rime 当中,这个 inline ascii 是要通过断言自动激活的,通过 rime-inline-ascii-predicates
。 这里有问题的话,可能需要贴一下 这个变量和 rime-disable-predicates
的值。
系统中是有效的,没有找到这个变量rime-inline-ascii-predicates
呢?
rime-inline-predicates
is nil
.rime-inline-ascii-trigger
is shift-l
.rime-disable-predicates
is (rime-predicate-after-alphabet-char-p rime-predicate-prog-in-code-p)
我说错了,就是 rime-inline-predicates
在输入法不被 disable (通过 rime-disable-predicates
) 的情况下,如果 rime-inline-predicates 成立,就会进入 inline ascii 模式。
所以像 rime-predicate-prog-in-code-p
可以放在 rime-disable-predicates
中。因为在代码中总是直接输入英文。
而其它的断言,可以放在 rime-inline-predicates
中,比如 rime-predicate-space-after-cc-p
, rime-predicate-current-uppercase-letter-p
.
贴个我自己的参考。
(rime-disable-predicates '(rime-predicate-prog-in-code-p // 代码中直接关闭
rime-predicate-after-alphabet-char-p)) // 紧跟英文后面直接关闭
(rime-inline-predicates '(rime-predicate-space-after-cc-p // 中文接一个空格的后面
rime-predicate-current-uppercase-letter-p)) // 当前输入是大写字母的时候
这个简单的配置应该很容易适应。
这个配置可以工作了,谢谢。
luna_pinyin_simp?
这应该和系统的 rime 配置有关,你可以把系统 rime (小狼毫)的 user data 目录拷贝到 emacs-rime 的 user-data 目录里,这样配置就和系统一致了。
我是直接拷贝的系统下面%appdata%/Rime 中的配置到emacs-rime作为rime-user-data-dir
,
另外拷贝了小狼豪安装目录/data文件夹 作为rime-share-data-dir
。
在Mac 下这样的设置可以正常,直接和系统一致了。但Windows下会产生混淆。我再仔细看看rime的配置。
我用的是luna_pinyin的方案,在系统里都是好的,只显示简体。
那就试试修改下 rime-share-data-dir 里的方案设置吧。
上面的几个方法都设置过了,还是不行啊。
会不会是librime的问题?
我偷懒直接用的别人编译好的librime.dll ,加上 rime_api.h, rime_levers_api.h ,然后用一下命令编译的emcas-rime.dll
gcc lib.c -o librime-emacs.dll -O2 -shared -I. -I/path/to/emacs/include -L. -llibrime
难道是缺少 opencc ?
暂时缓缓吧,过一段时间 liberime 就入 msys2 了,到时候安装就简单了
msys2的审核有点慢啊,都过去快20天 了,还没动静。
已经合并了,不过不知道什么时候能入库,在排队中。。。。
问题找到了。是因为我用了系统自带opencc文件夹。
应该使用librime编译文件夹里面的。原来这个opencc文件夹的格式是不一样的。
终于可以在Windows下体验emacs-rime了,好棒
windows要不要试试从master或者native-comp分支上编译emacs,最新的代码有w32-get/set-ime-open-status函数,可以控制输入法切换。