Emacs – 多列一个缓冲区

我正试图编辑一些汇编代码,这些汇编代码往往被格式化为长而薄的列表。 我希望能够使用我所拥有的一些水平空间,并且一次在屏幕上看到更多的代码。 有没有一种方法让Emacs(或者其他编辑器)向我展示多个指向同一个缓冲区的列?

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

请参阅后续模式 。 摘抄:

跟随模式是一种小模式,它使得两个窗口显示相同的缓冲区,滚动为一个高的“虚拟窗口”。要使用Follow模式,只需要一个窗口就可以进入一个窗口,将它分成两个并排使用Cx 3的窗口,然后键入Mx跟随模式。 从此,您可以在两个窗口中的任何一个中编辑缓冲区,或者滚动任一个; 另一个窗口跟着它。 在Follow模式下,如果将点移动到一个窗口中可见的部分之外,并移动到另一个窗口中可见的部分,则再次select另一个窗口,将两个对象视为一个大窗口的一部分。

我使用这个函数来调用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)) 

Vim的“Multipager”插件可以在VIM中为想要在Vim中获得这种行为的人进行分割。

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

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

Vim可以这样做:vsplit – 你可以在多个“窗口”中打开相同的缓冲区(实际上是单个“窗口”中的部分)。

文档在这里

快速浏览一下emacs wiki并不会显示你所描述的模式。 但是,写一个不应该太难 …你只需要用Cx 3拆分窗口,并将其他窗口中的文本向下移动,并且每当你移动文本时,就对另一个窗口执行相同的操作。 ..

当你到达缓冲区的底部时,可能会出现问题,你是否希望光标立即到达顶部的另一个窗口?

呃,也许不那么容易。 但它应该仍然是可行的…

这是emacs在分割窗口(Cx 3 for vertical split)时的默认行为,您将得到两列都打开当前缓冲区

使用Cx 3进行垂直分割。这会将当前缓冲区分成两列,您可以使用Cx o进行切换。