在 emacs 中编辑两个不同缓冲区中的一个文件

Dro*_*ror 32 text-editing emacs text-editors

我想foo.bar在 emacs 中打开文件两次(或更多),这样我就可以同时编辑它的两个不同部分。是否可以?可能更好的问题是,如何做到这一点?有没有办法在自己的缓冲区/帧中打开每个实例?

Gil*_*il' 39

您可以在多个窗口中打开同一个缓冲区(可以分布在不同的帧中),但这不是很方便。每个窗口都有自己的点,但它们都共享标记、文件模式、缩小和其他特征,因为除了点之外,几乎所有特征都与缓冲区相关联。此外,如果您碰巧在一个窗口中访问另一个缓冲区,您将失去您在文件中的位置。

您可以创建一个间接缓冲区,它具有自己的点、标记、模式等,但内容与原始缓冲区相同(并将任一缓冲区写入同一文件)。要创建作为当前缓冲区克隆的第二个缓冲区,请运行M-x clone-indirect-buffer RET。要在不同的窗口中打开第二个缓冲区,您可以输入C-x 4 c.

  • 澄清一下:`Cx 4 c` 运行 `clone-indirect-buffer-other-window`,因此将使用它代替 `clone-indirect-buffer`,而不是遵循该命令。但是,在我的系统上,这两个命令似乎都在做同样的事情。 (3认同)
  • @pedz `Cx 4` 是 Windows 的前缀,`c` 是 *clone* 的前缀。如果您愿意,您可以定义其他绑定。默认配置中不使用“Cx c”,如果您不怕意外点击“Cx Cc”,则可以使用它。我定义“Cx 5 c”来克隆到我的初始化文件中的新框架中。 (2认同)

hoo*_*enz 8

分屏模式:其中ctrl+x表示按住 ctrl 键并键入 x。然后键入以下数字。

ctrl+ x2(水平分割)

或者

ctrl+ x3(垂直分割)

然后您可以在同一个文件上独立滚动它们,或者如果您希望在其中一个缓冲区中打开另一个缓冲区。

返回单一视图类型

ctrl+ x1

如果您愿意,您可以根据需要多次拆分每个屏幕(部分)。首先选择要拆分的屏幕,然后对其进行水平或垂直拆分。