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

最近的这个pr是有问题的

那几个变量不能用同样的处理方式,他们有的是文件名,有的是路径。emacs中的路径结尾是有/的

是的,但是路径结尾不加 / 是可以的,所以我用了简单的方法,把 file-name-as-directory 去掉了。然后在 Makefile 中把连接字符串的前面加了个 /

不是,rime.el里面有一些取变量得到的路径,emacs里面的路径本身就带/,结尾的/不是由于 file-name-as-directory 产生的

但是你看他的错误信息里 librime-emacs.so/ 这个明显是用 file-name-as-directory 处理过的,总不能取 module-file-suffix 的值取出的个结尾的 / 来吧

不过include的路径有两个/啊

有一个是我在Makefile里加的,另一个就是同样用 file-name-as-directory 加上的,所以连接字符串就出了两个 /

另外编译选项里的 -shared 也没有,说明在判断 LIBRIME_DYLIB 的值是既没匹配到 .so ,也没匹配到 .dylib ,原因就是给 LIBRIME_DYLIB 传过来的值不对,后面加了"/" , 变成了 “.so/” 了。

我的问题。代码看得不仔细,没注意到 file-name-as-directory, 应该把 module-file-suffix和另两个路径分别传递。

我好像有点明白了,我来改一下。

当初有个想法就是所有的地方需要路径的话,最后的 / 都是可有可无的,所以才用了 file-name-as-directory 。我觉得几个变量不能用一样的处理方式。这样会要求更严格的路径格式。

@BobCromwell @wanglm @cnsunyour 提交了一个修改,一直没有时间弄 CI 所以这块确实有点乱,也不好保证正确性。

如果有时间的话求大家帮忙测试。确实情况比较多。

1 个赞

支持了 Rime 中的编码提示。

目前还没有条件去尝试在 windows 下面使用。按道理说 msys2 下面是可以的,只是构建 librime 会比较麻烦。

确实好了,感谢大神,实在是不会写 lisp… 等哪天学成了也给大家贡献点…

我在 mac 系统上 emacs-mac,emacs-plus --with-emacs-27-branch,emacs 28 下面都试了下,没有发现问题。

1 个赞
env C_INCLUDE_PATH=~/.emacs.d/librime/dist/include/ gcc lib.c -o librime-emacs.so -fPIC -O2 -Wall -shared -L ~/.emacs.d/librime/dist/lib/ -Wl,-rpath ~/.emacs.d/librime/dist/lib/ -lrime
lib.c:24:10: fatal error: 'rime_api.h' file not found
#include <rime_api.h>
         ^
1 error generated.

我按照 FAQ 都设定了:

    :custom
    (rime-librime-root "~/.emacs.d/librime/dist")
    (default-input-method "rime")

然而还是报错,该如何是好…(感谢)

p.s. 我用 spacemacs

是 Mac 吗?

抱歉,忘了写,是 Mac

下载 librime 的 release 了吗?

下载了,在某个 commit 之前都运作正常,我今天一更新就出错了… (对了, 我之前有提过 issue ,就是很笨的那个 XDDD)

~/.emacs.d/librime/dist/include/rime_api.h 看错是这个文件没有找到。

如果这个文件有的话请开个issue