如果搞一个 emacs 拼音输入法,底层用 c 写 dynamic module,上层用 posframe,工作量有多大?

最近开始用 docker emacs 了,又开始受困于输入法的问题。所以设想了一下现代 emacs 应该有什么样的输入法,突然产生了这个想法,不知道大家怎样看?

这不是pyim+liberime么

嗯嗯,就是这个意思

可惜没有懒猫的执行力和开发功底,不然直接动手开干了 :joy:

可以先试着把pyim改成lexical-binding: t

什么意思?有什么特殊效果?

我意思是可以先帮忙完善pyim,目前rime是比较好的输入法后端方案。pyim又是emacs唯一能用的拼音前端……

曾经折腾过一阵 pyim,后来放弃了。想看到更多的输入法方案,librime 做后端,posframe 做前端感觉不错

感觉写rime binding的工作量巨大 :joy:

没有其它选择吗?不过看 librime 的开发挺积极

还有比rime更有名的开源输入法后端么?

如果要全套在elisp里完成, 那就又变成像pyim一样,大体上能用,不过细节上体验差。


前后端分离是比较好的思路,这样只需要用Elisp做UI(甚至可以直接照抄pyim的UI),还可以做云拼音(虽然我不用云拼音)。rime用自己的数据库格式保存词库文件,不用像pyim一样暴力把hash table序列化进文本文件。

1 个赞

确实,有空研究研究。感觉是个大坑,自己不太敢开这种坑 :joy:

还有种思路就是用C语言写个rime进程,然后用字符串IPC的Unix传统艺能

比如谷歌的mozc日文输入法

1 个赞

感谢提供思路

如果能有一个这样的输入法,我对 emacs 的爱估计会翻倍吧 :joy:

https://recordit.co/Xqt3IINmJr

pyim + rime + liberime 效果不错~

问了下有没有人做过rime 的Rust binding, 居然还真有 :thinking:

配置能分享一下吗?谢谢!

毫不犹豫地伸手 :joy:

要不要开个坑写个 emacs 前端给它? :smile:

FROM ubuntu:latest

ENV DEBIAN_FRONTEND noninteractive

RUN sed --in-place --regexp-extended “s/archive.ubuntu/azure.archive.ubuntu/g” /etc/apt/sources.list \

&& echo ‘APT::Get::Assume-Yes “true”;’ >> /etc/apt/apt.conf \

&& apt-get update \

&& apt-get install build-essential git cmake zlib1g-dev \

pkg-config libglib2.0 libreadline-dev

RUN apt-get install doxygen python-gi python3-gi python-xlib \

libboost-dev libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-locale-dev libgoogle-glog-dev libgtest-dev

Manually install libopencc

RUN git clone https://github.com/BYVoid/OpenCC.git

WORKDIR OpenCC/

RUN make

RUN make install

Fix libgtest problem during compiling

WORKDIR /usr/src/gtest

RUN cmake CMakeLists.txt

RUN make

#copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder

RUN cp *.a /usr/lib

RUN apt-get install libc6-dev libyaml-cpp-dev libleveldb-dev \

libmarisa-dev curl

Build librime

WORKDIR /

RUN git clone https://github.com/rime/librime.git

WORKDIR librime/

RUN make

RUN make install

ENV rime_dir=/usr/local/share/rime

RUN curl -fsSL https://git.io/rime-install | bash

RUN git clone https://gitlab.com/liberime/liberime.git

WORKDIR liberime/

RUN make

CMD [“bash”]

1 个赞