Eog*_*anM 12 emacs elisp modal-dialog
场景:
结果:我得到了可怕的"命令试图在迷你缓冲区中使用迷你缓冲区"
在使用emacs时,每天都会发生这种情况,而不仅仅是在这种情况下.这种行为是高度用户敌意的(参考模式和伪模式The Humane Interface由杰夫拉斯金)
有没有办法自定义emacs行为,以便它不是给出这个错误,而是取消第一个迷你缓冲区并用新的替换它?
您可以设置变量enable-recursive-minibuffers,以防止出现该错误消息.但它只是允许多次调用迷你缓冲区 - 它不会将当前的迷你缓冲区命令重定向到新的缓冲区.你可以尝试一下,但我认为它会更加混乱,因为原来的行动还在等待......
M-x绑定'execute-extended-command,并为该命令重新托管(更改原始缓冲区)有点像继续编程.也就是说你从位置X调用一个子程序,但是当你完成后不再返回X时,你会回到Y.我个人认为它会比它解决时更加混乱.但我理解挫折感(并且知道其他人也有同样的挫折感).
确实,这个 emacs 的“功能”很激进而且很烦人。我发现这是问题的正确答案。很可能你失去了对小缓冲区的关注,因为你用鼠标而不是小缓冲区命令切换了窗口。因此,每当您使用鼠标失去焦点时,迷你缓冲区将被清除。检查这个帖子。它对我有用,而且比递归小缓冲区要好得多,这会导致头痛
http://trey-jackson.blogspot.com/2010/04/emacs-tip-36-abort-minibuffer-when.html
我不确定是否有这样的定制,但我避免这种方式的方法是打击ctrl- g取消我在迷你缓冲区中写入的命令.