嗯,这个确实是 Emacs 本身问题。原来就有这问题。不过影响不大,我很少会缩放这么大去使用 Emacs。
我大概知道怎么修 但改的代码有点多 我不能确定原本代码的意图是什么 为什么不更新是忘记了还是要干什么 你可以报一个bug问问看 或者后面我去问问看 也可以在c源码方面打个简单的补丁 但我不确定那个是bug还是什么 如果我根据现在的代码打了补丁 后面发现是bug 我的补丁就白打了
我猜测可能是原来没实现 preedit 的字体缩放,不调整候选框的位置并不影响输入, 候选框在中间反而显得更加合理。如下图是原来效果上加上缩放:
但现在实现了正确的 preedit 后,情况就不一样了,不调整位置就会遮挡输入,影响正常输入。
到时你和 Eli 交流时,可以顺带问一下吧。
另外,目前在 macOS 下也没解决这个问题。所以这个问题应该不光是 Windows 系统上的。
下图是在 macOS 下的效果:
我会出手 问问
坏消息 eli回复说改动太大更倾向于另一个方案 本贴估计到此结束了
So sad!
直接修改字体是有什么困难吗? 我个人觉得目前的效果已经很好用,打算先用一段时间了。
附一下 Eli 拒绝的理由:
Thanks. I would prefer to start with what was described in bug#68339. The reason is twofold: (1) it is a less radical change, in that the window shown by the IME is still used, we just adjust its font size; (2) modifying overlays to present the preedit text will cause the following redisplay of the selected Emacs window to be more thorough, thus more expensive and slower. I’m also not sure what this means if and when the relevant text is in a non-selected window (if this is at all possible). This is why I prefer to begin with a more conservative change that fixes the original problem by adjusting the font of the preedit window, and leave these more extensive changes (really, improvements) for later.
直接修改字体大小是没有反应的,你看我上面发的录屏就知道了 根本没有效果
通过字体这条路解决这个问题的话,我觉得可能要先去修 Windows 下的字体加载问题。 因为原来的方案中 preedit 的字体都没正确继承我的个人字体设置,所以它才显示的比较小, 没应用当前字体设置。
实在不好解决的话,我就先用目前的 patch了。感谢大佬!
你先用着吧 patch没什么问题 只是改动太大 eli不想要这个方案
有对应的 bug 单么,可以提一个放着。
看帖子最上面的信息有相关的bug报告
这个 Bug report:#68339 - 29.1; Emacs doesn't support Microsoft PinYin Input Method well - GNU bug report logs
也可能是因为非CJK用户这种选字的「输入法」用得少?
他们不需要输入法,像法语,德语这种都是使用相应的键盘布局就可以直接输入。
好消息 eli说的另一个patch也就是设置字体大小的那个想法 已经被我实现了 也就是68339的 eli想合并的意愿很高
使用你最新发的 0001-Set-the-IME-window-font-to-an-appropriate-size.patch 重新编译了最新的master分支,在 Emacs -Q 上可以正常输入,效果很好。缩放后候选框的位置也是正确的,太棒了。如下图:
不过我编译的 master 版本,在使用自己的配置时,出现了2次闪退(在切换中英文时会出现),目前还不确定是否和 patch 有关。暂时没法在 emacs -Q 中重现,也可能是 master 引入的新 bug。如下图:
PS:重新使用 emacs-31 分支编译也是会在个人配置中闪退,看来可能是和 patch 有关。
你可以把崩溃什么的日志发出来看看 或者有.dump文件 如果emacs -Q复现不了的话 就得一个一个排除配置了
晚上有空我排查下配置,看看和哪个设置有关。 日志是不是要按提示的信息使用 gdb debug 一下?
不知道 可以试试在终端里面启动emacs emacs > error.txt这样子 看看会不会有日志 我目前emacs崩溃都是直接闪退 不询问
或者研究一下怎么搞一个dump文件出来 我可以拿到vs里面去分析一下



