返回到Emacs中的上一个模式

返回到Emacs中的上一个模式,emacs,Emacs,在emacs中是否存在退出模式并返回到上一模式的密钥绑定? 例如,假设我使用以下命令进入行号模式: Alt+x linum-mode 如何快速禁用此模式并返回到以前的模式(不再使用相同的命令)?C-x z调用重复-重复上一个命令。 重复调用次要模式可启用/禁用它 另一种方法是使用smex:最后一个命令 你用M-x打电话给我的感觉有点不对劲。 因此,您可以使用smex启用linum模式,进行大量编辑 使用常用快捷方式,然后使用禁用linum模式 M-x RET.C-x z调用repeat-重复最

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

Alt+x linum-mode
如何快速禁用此模式并返回到以前的模式(不再使用相同的命令)?

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

另一种方法是使用
smex
:最后一个命令 你用M-x打电话给我的感觉有点不对劲。 因此,您可以使用
smex
启用
linum模式
,进行大量编辑 使用常用快捷方式,然后使用禁用linum模式 M-x RET.

C-x z调用
repeat
-重复最后一个命令。 重复调用次要模式可启用/禁用它

另一种方法是使用
smex
:最后一个命令 你用M-x打电话给我的感觉有点不对劲。 因此,您可以使用
smex
启用
linum模式
,进行大量编辑 使用常用快捷方式,然后使用禁用linum模式
M-x RET.

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

M-xM-pRET

没有比这更简单的了

编辑:您可以按该顺序重复M-p以在命令历史记录中进一步后退,并且可以使用M-xC-r搜索命令历史记录

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


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

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

M-xM-pRET

没有比这更简单的了

编辑:您可以按该顺序重复M-p以在命令历史记录中进一步后退,并且可以使用M-xC-r搜索命令历史记录

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


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

只需重复相同的命令:
M-x linum mode
。这样的次要模式命令是开关:开/关。

只需重复相同的命令:
M-x linum模式
。此类次要模式命令是开关:开/关。

解决方案可能遵循路径
终止环保存
工作:将激活的模式存储为前一个模式环中列出的当前模式

所需的代码基本上存在于
描述模式中
,请参见“启用的次要模式”中的向上部分-主要模式的相应代码

然后钩子应该检查
这个命令的名称中是否有“-mode”。如果是,检查当前模式列表是否等于先前模式的汽车铃声。如果没有,请添加新设置


最后编写一个命令,根据前一个模式环中选择的列表设置当前模式。

解决方案可能遵循路径
kill ring save
works:将激活的模式存储为前一个模式环中的当前模式列表

所需的代码基本上存在于
描述模式中
,请参见“启用的次要模式”中的向上部分-主要模式的相应代码

然后钩子应该检查
这个命令的名称中是否有“-mode”。如果是,检查当前模式列表是否等于先前模式的汽车铃声。如果没有,请添加新设置


最后,编写一个命令,根据前一个模式环中选择的列表设置当前模式。

只有在启用模式后未使用其他命令时,此命令才有帮助。是的,@coffeMug说“很快”,但这要求在做任何事情之前先做
C-x z
。只有在启用该模式后没有使用其他命令时,这才有帮助。是的,@coffeMug说“很快”,但这要求在执行任何其他操作之前先执行
C-x z
。好的,如果mode命令之后没有其他历史记录,那么这可能比再次键入同一命令快一点即使有,请注意,您只需重复
M-p
,直到返回到有问题的命令。如果你必须搜索很久以前的内容,以至于它不再比手动键入命令快。。。嗯,我不确定有什么热键可以“撤销我15分钟前做的一件事;你知道我的意思”:)但是你也可以用
m-x C-r
搜索历史。我不确定“你的评论可以应用于主要模式”是什么意思,值得注意的是,重复主模式命令不会切换回您以前使用的主模式。我怀疑这是一个非常罕见的例子,当你想在主要模式之间切换。尼斯皮奥:是的,我没有说得很好。我的意思是,“返回到前一个模式”的概念对次要模式没有意义,但对主要模式有意义(尽管,正如你正确指出的,你不能用次要模式切换主要模式)。我已经更新了答案以澄清这些评论。好的,如果mode命令之后历史记录中没有其他项目,那么这可能比再次键入同一命令快一点。;)即使有,请注意,您只需重复
M-p
,直到返回到que中的命令