zdn
2026 年7 月 27 日 16:14
1
前提提要
具体看这个帖子 Windows编程 如何改善 Emacs 系统中文输入法的拼音缩放问题 - #9,来自 zdn
还有这个帖子 windows下emacs这一点比不了vim
相关的报告 #68339 - 29.1; Emacs doesn't support Microsoft PinYin Input Method well - GNU bug report logs
Windows下的emacs 它的preedit窗口字体大小是不会跟着字体的缩放而缩放的
而vim可以 我本人是更喜欢内联在emacs里面的 我认为这样编辑体验更好
最近我有空了 给emacs的Windows输入法从源码方面给实现了preedit的渲染
这是示例
这个延迟比我之前通过命名管道通信的方案还高一点 是我没有想到的
最后仓库在这里
draw preedit text
7 个赞
光看标题还以为仅对微软输入法(原生输入法)有效,其实所有用到输入框架的系统输入法都可以享受这个吧。
虽然自己发了前面那个帖子之后,看到万象输入法帖子就从微软拼音切换到万象了😄 但还是要为楼主点赞👍
zdn
2026 年7 月 28 日 04:30
6
能内联在emacs里面体验才会更好
我不习惯输入法自己去渲染
所以让emacs自己去渲染了
这个问题是elisp层面无能为力的
我这个patch如果合并不进去的话
我想我会把我之前用的动态模块方案
发到melpa上什么的了
希望能合并吧
1 个赞
Hash
2026 年7 月 28 日 07:39
7
感谢楼主,稍后编译试用下
楼主愿意看一看 emacs -nw Windows 系统 无法输入中文 是否有能力解决吗
是不是就解决掉 Windows 上输入法输入时显示奇怪的效果了?
如果是的话那就
zdn
2026 年7 月 28 日 08:21
9
可以看仓库和示例
解决的话是解决了
通过窗口事件得到了输入法合成的字符串也就是拼音
然后发给elisp用overlay绘制出来
不是设置的字体大小什么的
不过这个延迟有点太高了
我之前通过动态模块用Windows的命名管道来通信的
比现在这个改emacs主线程快1倍 不知道为什么会延迟这么高
1 个赞
Hash
2026 年7 月 28 日 09:16
11
上游是这么说的
AFIU the current code doesn’t support
it, because it uses ReadConsoleInputW, which is too low-level to read
the characters produced by multi-stage IME composition windows. AFAIU
we need to switch to ReadConsole instead, but the question is how to
do that and remain compatible with the current functionality, which you
can fund in w32inevt.c, where we support the keyboard and the mouse
events on the Windows console.
bug 81495(暂时没找到超链接)
zdn
2026 年7 月 28 日 09:21
13
终端的这个 我看过Windows terminal的源码
是terminal自己绘制的内联字符串
所以Windows termianl里面用emacs是直接支持内联编辑的
1 个赞
zdn
2026 年7 月 28 日 12:52
15
没仔细研究过
应该可以
你可以去看一下具体的绘制el文件
1 个赞
如果要合并到上游的话,最好能实现这种输入时保持候选框不动的风格。输入法在系统中的其他应用上也是这样的效果,不然从其他应用切换到 Emacs 会有点不适应。
zdn
2026 年7 月 29 日 10:41
17
昨天晚上被审核拷打的有点狠 我今天在改patch了 给一并解决
2 个赞
zdn
2026 年7 月 29 日 15:39
18
这个东西改起来还要改c源码 让我多写了几行代码
不知道review的时候会不会被拷打
3 个赞
牛,这效果和在其他应用中一样了。
期待合并到master,又多了一个用master的理由