我曾经有信心只需按 Cg 一次从迷你缓冲区返回缓冲区,直到我了解到Emacs Here中有“递归编辑模式”,这似乎使取消行动不一致。因此,我正在阅读整个部分,希望找到一个更一致/无状态的命令来返回迷你缓冲区。
但是,在关注并尝试复制手册所说的内容时,我遇到了以下问题:
Fundamental-mode
中),我无法在模式行中复制“一对方括号”。但是,现在我必须按C-g
TWICE返回缓冲区
问题:recursive-edit-mode现在还有方括号吗? (我使用的是ver 24.3)C-]
让我从迷你缓冲区到缓冲区,但它仍需要2次射击才能做到这一点。只想刷常用的命令,例如C-g
。如果保持一致,它可能有助于避免迷你缓冲区由于内部递归编辑模式而被吃掉(有时不被注意)。
每次在缓冲区内部视觉确认点使键盘输入成为闭环反馈过程,因此会引起更多关注。
答案 0 :(得分:2)
您肯定会在模式行中看到方括号以进行递归编辑 - 但不适用于递归迷你缓冲区。
C-g
确实行为一致,但它在不同的上下文中做了不同的事情(但对于给定的上下文,它总是相同的事情)。这可能令人困惑。可能需要一些时间来习惯 - 有点像在Isearch期间习惯C-g
的各种行为,具体取决于当前的搜索状态。
如果您使用递归编辑或递归迷你缓冲区,那么您需要注意当前状态/上下文的线索。再次,这就像学习Isearch一样。 minibuffer-depth-indicate-mode
是必须的,以提供有关您所处州的反馈。
FWIW,超过minibuffer-depth-indicate-mode
,我使用独立的迷你缓冲框架,并且每次递归编辑或递归迷你缓冲区时,背景色调会稍微改变,以更好地指示级别等。(背景颜色稍有变化)也适用于(a)有效迷你缓冲和(b)Isearch。我使用库oneonone.el
来处理这些事情。)
如果您不使用独立的迷你缓冲框架,那么您可以考虑在模式行中突出显示方括号或其他内容,以帮助您了解自己的位置。
C-r
是递归编辑有用的一个很好的例子。还有其他几个。但一般来说,我没有太多使用递归编辑,FWIW。 (但是,我确实使用了递归的迷你缓冲区,因为我使用了迷你缓冲区中的键,这些键会调用自己可能提示输入的命令等。)
关于query-replace
与C-r
的问题:这里根本没有涉及迷你缓冲区。 C-]
之后的C-r
不仅会结束递归编辑,还会结束查询替换(而C-M-c
会结束递归编辑并返回查询替换。
FWIW - 在Icicles次互动中,您可能会发现自己处于任意数量的递归迷你缓冲区中。 (例如,您可以使用progressive completion连续缩小完成候选集,并且每个缩小都会打开一个递归的迷你缓冲区。)
C-g
总是中止当前命令,如果没有,那么当前的迷你缓冲区,C-]
总是中止当前的迷你缓冲区。重复C-g
(或C-]
)会弹出迷你缓冲链,一次一个级别。但是(在冰柱中)您可以使用C-M-S-t
(又名C-M-T
)直接弹回到顶层(退出所有迷你版)。
同样,回答一个迷你缓冲提示(例如,在RET
中对候选人点击mouse-2
或使用*Completions*
)退出当前的迷你缓冲区,弹出一个级别(向父级迷你缓冲区或顶级(如果没有))。 (在冰柱 RET
中可以选择让您回到顶层。)