返回Emacs中的上一个模式

时间:2013-10-19 21:33:38

标签: emacs

是否有一个键绑定退出模式并返回到emacs中的上一个模式? 例如,假设我使用以下命令进入行号模式:

Alt+x linum-mode

如何快速禁用此模式并返回之前的模式(不再使用相同的命令)?

4 个答案:

答案 0 :(得分:2)

为什么不想再次使用相同的命令?

M-X M-P RET

它并没有那么简单。

编辑:您可以在该序列中重复 Mp 以在命令历史记录中进一步退回,您可以搜索命令历史记录的Mx 的Cr

此外,当您禁用次要模式时,您不会“返回之前的模式”;你只是禁用一个(多个)同时处于活动状态的次要模式。

切向地,“返回到之前的模式”的概念可以应用于主要模式(因为在给定的缓冲区中只有一个活动的主模式),但严格来说,没有“禁用”主要模式的概念 - 仅“启用”您想要更改的模式 - 因此要在两种主要模式之间“切换”,您需要交替调用它们。

答案 1 :(得分:1)

重复相同的命令:M-x linum-mode。这种次模式命令是切换:开/关。

答案 2 :(得分:0)

C-x z 调用repeat - 重复上一个命令。 反复调用次模式启用/禁用它。

另一种方法是使用smex:最后一个命令 那个你用 M-x 打电话的人。 因此,您可以使用linum-mode启用smex,进行一系列编辑 使用常用快捷方式,然后禁用linum-mode M-x RET

答案 3 :(得分:0)

解决方案可能会遵循路径kill-ring-save的工作原理:将处于活动状态的模式存储为先前模式环中的当前模式列表。

此处所需的代码基本上存在于describe-mode内,从“启用的次要模式”向上看 - 分别对应主要模式。

然后钩子应检查this-command中是否有“-mode”。如果是,请检查,如果当前模式列表等于前一模式环的汽车。如果没有,请添加新设置。

最后编写一个命令,根据previous-modes-ring中的选定列表设置当前模式。