调试时向后键入Emacs微型缓冲区

调试时向后键入Emacs微型缓冲区,emacs,elisp,Emacs,Elisp,当调试回溯在Emacs中弹出时,迷你缓冲区通常会停止正常工作。具体地说,我尝试在其中键入的任何内容都是“向后键入”。请参见以下屏幕截图(我试图在迷你缓冲区中键入“haskell”): 当我退出“调试”窗格时,微型缓冲区会再次开始正常键入 这是什么原因造成的?关于如何停止的任何建议?正如nmichaels所说,这可能与bidi显示重新排序设置有关(默认情况下为true,请参阅: 可能是abbrev insert或代码的任何其他部分插入了一个Unicode字符,从而改变了文本的方向吗?根本原因是,

当调试回溯在Emacs中弹出时,迷你缓冲区通常会停止正常工作。具体地说,我尝试在其中键入的任何内容都是“向后键入”。请参见以下屏幕截图(我试图在迷你缓冲区中键入“haskell”):

当我退出“调试”窗格时,微型缓冲区会再次开始正常键入


这是什么原因造成的?关于如何停止的任何建议?

正如nmichaels所说,这可能与bidi显示重新排序设置有关(默认情况下为true,请参阅:


可能是abbrev insert或代码的任何其他部分插入了一个Unicode字符,从而改变了文本的方向吗?

根本原因是,在插入字符后,Emacs会将点移回该字符之前。为什么?我不完全确定,但我有一个预感:


Emacs非常聪明,所以它可能注意到您使用的是纯语言编码,并且您可能不想更改“点”有了这些令人讨厌的副作用,它会为您将其重置回初始值。

您是否在任何地方设置
bidi display reordering
bidi段落方向
?是否在某个地方有unicode rlm?不是手动的。
bidi display reordering
似乎被设置为
t
,而不管是否使用了微缓冲区无论是否向后输入,
bidi段落方向
总是设置为
nil
。正如我对nmichaels所说的,bidi设置不会改变-它们总是设置为默认值。现在您提到了上面的abbrev insert命令,这听起来可能是罪魁祸首。它是
haskell模式
插件的一部分最近我没有听到其他人抱怨同一个问题,我想这一定是一个相对孤立的问题。你知道可能发生了什么吗?老实说,不,我真的不知道。但我在Emacs以外的程序中遇到过一些问题,其中非打印字符会导致文本流发生变化。