Emacs - 多列一个缓冲区

时间:2009-06-09 14:09:44

标签: emacs

我正在尝试编辑一些汇编代码,这些汇编代码往往采用长但很薄的列表进行格式化。我希望能够使用我所拥有的一些水平空间,并在屏幕上同时看到更多代码。有没有一种方法可以让Emacs(或者另一个编辑器)显示多个列都指向同一个缓冲区?

C-x 3(emacs)和:vsplit(vim)非常适合代码中的多个单独视图,但我希望它从一列流向另一列(如报纸中的文本)。

7 个答案:

答案 0 :(得分:245)

follow-mode。 摘录:

跟随模式是一种次要模式,它使两个窗口显示相同的缓冲区,滚动为单个高“虚拟窗口”。要使用“关注”模式,请转到仅有一个窗口的框架,将其分成两个并排Windows使用Cx 3,然后键入Mx跟随模式。从那时起,您可以在两个窗口中的任何一个窗口中编辑缓冲区,或者滚动其中一个窗口;另一个窗口跟着它。 在“跟随”模式下,如果将点移动到一个窗口中可见的部分之外并移动到另一个窗口中可见的部分,则再次选择另一个窗口,将两个窗口视为一个大窗口的一部分。

答案 1 :(得分:16)

我使用此函数调用follow-mode,虽然需要针对不同的屏幕尺寸进行自定义:

;;; I want a key to open the current buffer all over the screen.
(defun all-over-the-screen ()
  (interactive)
  (delete-other-windows)
  (split-window-horizontally)
  (split-window-horizontally)
  (balance-windows)
  (follow-mode t))

答案 2 :(得分:15)

Vim的“Multipager”插件可以为希望在Vim中获得此行为的人进行VIM分割。

从Chip博士的页面获取它:http://mysite.verizon.net/astronaut/vim/index.html#MPAGE

文档:http://mysite.verizon.net/astronaut/vim/doc/mpage.txt.html

答案 3 :(得分:2)

Vim可以使用:vsplit执行此操作 - 您可以在多个“窗口”中打开相同的缓冲区(实际上是单个“窗口”中的部分)。

Documentation here

答案 4 :(得分:-1)

快速查看emacs wiki并不会显示您描述的模式。但是,它不应该难以写一个...你只需要用Cx 3拆分窗口并在另一个窗口中向下移动文本,每当你移动文本时,做与其他窗口相同...

当您到达缓冲区的底部时,可能会出现问题,您是否希望光标立即转到顶部的其他窗口?

嗯,也许不是那么容易。但它应该仍然可行......

答案 5 :(得分:-5)

这是分割窗口时emacs的默认行为(垂直分割的C-x 3) 你得到两列都打开当前缓冲区

答案 6 :(得分:-7)

对C-x使用vertical-split 3.这会将当前缓冲区拆分为两列,您可以使用C-x o切换。