我正在尝试编辑一些汇编代码,这些代码往往被格式化为长而细的列表。我希望能够使用我拥有的几英亩水平空间,并一次在屏幕上看到更多代码。有没有一种方法可以让 Emacs(或者实际上是另一个编辑器)向我显示多个列都指向同一个缓冲区?
Cx 3 (emacs) 和 :vsplit (vim) 非常适合代码的多个单独视图,但我希望它从一列流到另一列(就像报纸中的文本)。
请参阅follow-mode。摘抄:
跟随模式是一种次要模式,它使两个显示相同缓冲区的窗口作为一个高大的“虚拟窗口”滚动。要使用跟随模式,请转到只有一个窗口的框架,使用 Cx 3 将其拆分为两个并排的窗口,然后键入 Mx follow-mode。从那时起,您可以在两个窗口中的任何一个中编辑缓冲区,或滚动其中一个;另一个窗口紧随其后。在跟随模式下,如果您将点移到一个窗口中可见的部分之外并进入另一个窗口中可见的部分,则会选择另一个窗口——同样,将两者视为一个大窗口的一部分。
我使用此函数来调用 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))
scroll-margin
设置为 0
在 follow-mode
中是有意义的。
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
做到这一点 - 你可以在多个“窗口”(实际上是单个“窗口”中的部分)中打开相同的缓冲区。
:scrollbind
结合起来,您就在那里。
:set scrollbind
。现在窗口将根据需要一起滚动。 (注意:scrollopt 必须包含 'ver' 选项。)
快速浏览一下 emacs wiki 并没有像您描述的那样显示模式。但是,写一个应该不会太难...您只需要使用 Cx 3 拆分窗口并将另一个窗口中的文本向下移动,并且每当您移动文本时,对另一个窗口执行相同的操作。 ..
当您到达缓冲区底部时可能会出现问题,您是否希望光标立即转到顶部的另一个窗口?
嗯,也许没那么容易。不过应该还是可以的...
这是分割窗口时 emacs 的默认行为(Cx 3 用于垂直分割)你会得到两列,它们都打开了当前缓冲区
使用 Cx 3 的垂直分割。这会将当前缓冲区分成两列,您可以使用 Cx o 在它们之间切换。
不定期副业成功案例分享