场景:
我开始键入Mx键入命令
我切换到另一个emacs窗口/缓冲区,因为我意识到我在错误的窗口中执行命令
我再次开始输入Mx以在正确的窗口中执行命令
结果:我得到了可怕的"命令试图在迷你缓冲区中使用迷你缓冲区"
在使用emacs时,每天都会发生这种情况,而不仅仅是在这种情况下.这种行为是高度用户敌意的(参考模式和伪模式The Humane Interface
由杰夫拉斯金)
有没有办法自定义emacs行为,以便它不是给出这个错误,而是取消第一个迷你缓冲区并用新的替换它?
您可以设置变量enable-recursive-minibuffers
,以防止出现该错误消息.但它只是允许多次调用迷你缓冲区 - 它不会将当前的迷你缓冲区命令重定向到新的缓冲区.你可以尝试一下,但我认为它会更加混乱,因为原来的行动还在等待......
M-x
绑定'execute-extended-command
,并为该命令重新托管(更改原始缓冲区)有点像继续编程.也就是说你从位置X调用一个子程序,但是当你完成后不再返回X时,你会回到Y.我个人认为它会比它解决时更加混乱.但我理解挫折感(并且知道其他人也有同样的挫折感).
我不确定是否有这样的定制,但我避免这种方式的方法是打击ctrl- g取消我在迷你缓冲区中写入的命令.