我刚刚开始使用Emacs。有时我会尝试一些东西,当我完成实验时,我想回到我正在编辑的缓冲区,但我不知道如何。更糟糕的是,有时我偶然碰到了钥匙,甚至不知道我打了什么!在Vim我可以点击ESC恢复;有没有类似的方法在Emacs中恢复?
编辑:我正在使用命令行(非GUI)Emacs。
答案 0 :(得分:9)
还有ESC-ESC-ESC(键盘退出退出)。从手册:
ESC ESC ESC命令 (keyboard-escape-quit)可以退出 或中止。这个密钥的定义是因为 ESC用于在许多PC中“离开” 程式。它可以取消前缀 参数,清除选定的区域,或 退出查询替换,如C-g。 它可以离开迷你缓冲区或 递归编辑,如C-]。它也可以 摆脱框架分裂 多个窗口,如C-x 1.一个 然而,它不能做的事情就是停止了 正在运行的命令。那是 因为它作为普通人执行 命令,Emacs没有注意到它 直到它准备好接受命令。
我发现按ESC是对“退出”情况的自然反应。当你感到沮丧时,多次敲击它也可以在情感上令人满意。
答案 1 :(得分:8)
“C-g”是你的命令退出。这将恢复大多数情况。
如果您有多个打开,“C-x o”会将您带到另一个窗口。
“C-h a”(apropos)是查找更多命令和密钥的好方法。输入“C-h a buffer”以获取所有与缓冲区相关的命令的列表。
答案 2 :(得分:3)
您的主题行有点令人困惑,因为'模式'(主要和次要)与缓冲区不同(模式应用到缓冲区,影响您查看和与它们交互的方式)。听起来好像你真的想知道如何在你改变到另一个之后找到原始缓冲区吗?
C-x b
是switch-to-buffer
的默认绑定。它为您提供了一个可以切换到的默认缓冲区,您可以通过按RET
来执行此操作。默认提供的大部分时间都是您想要的。如果没有,您可以改为按TAB
查看所有可用缓冲区的完成列表。现在只需键入足够的名称即可使其唯一,再次按TAB
为您完成名称,然后RET
选择它。
或者,C-x C-b
是list-buffers
命令的标准绑定,它将显示所有缓冲区的列表。然后,您可以使用C-x o
更改为other-window
,向上或向下移动以选择要更改为的缓冲区,然后按RET
更改为该缓冲区。然后C-x 1
将从您的emacs显示中删除其他窗口。
最后,许多主要模式将q
绑定到'quit'命令,该命令通常会隐藏或删除该缓冲区,使您返回上一个缓冲区。这不保证,但它适用于许多情况。
(正如其他人已经提到的,您可能需要C-g
或以其他方式中止活动命令,然后才能使用这些命令。)
所有人都说,我在想你真正需要做的是输入C-h t
或M-x help-with-tutorial RET
并阅读并遵循该文件。它将为您回答所有这些问题,还有更多。 Emacs可能很复杂,所以这非常值得你花时间。
答案 3 :(得分:2)
取消,撤消/重做
C-g
将取消任何命令。
当你打断自己输入一个命令时,有一次这是行不通的,例如:
C-xC-f
(查找文件)。C-xC-o
。C-xC-o
返回并继续。 C-_
是撤消/重做,它只有1个方向。如果你C-_20次,那么做一个改变,那些undos成为你的过去,你可以多次C-_ 21撤消你的改变和你的20撤消,你会回到你开始的地方。
查找缓冲区
C-x<left>
和 C-x<right>
来交换缓冲区。C-xb
。M-x ibuffer
。<强>分裂强>
C-x3
垂直拆分C-x2
水平拆分C-x1
删除所有拆分<强>信息强>
M-x info
是您最好的朋友C-h
答案 4 :(得分:0)
M-x基本模式将删除给定缓冲区中的所有模式。
答案 5 :(得分:0)
我保留一个“实验性”缓冲区(通常是我的*scratch*
缓冲区)并绑定一个键以切换到它(在我的情况下, F4 )。我点击它,转到临时缓冲区,尝试我的心脏内容,然后使用 C-x b 切换回我所在的缓冲区。
在任何情况下, C-x b 都应允许您切换缓冲区,然后您可以使用它“返回”您所在的位置。 iswitchb-mode
使缓冲区切换更好,但这是个人意见。
C-g 是Emacs的退出命令。它大致等于vim的 ESC 键。您可以点击几次以突破您正在做的事情(例如,在复杂命令的中途等),然后返回到您的常规工作流程。
别担心。过了一会儿,这一切都变成了肌肉记忆。就像vim专家的 ESC 键一样。