如何在单个 Emacs 框架中打开 2 个以上的文件?

如何在单个 Emacs 框架中打开 2 个以上的文件?

我希望能够自动执行在单个框架下打开 emacs 中的多个文件的过程,以便将框架拆分为多个窗口。目前,我只能通过在 Linux 终端中键入以下内容在单个 emacs 框架(2 个窗口)中打开 2 个文件:emacs file1 file2。但是,如果我尝试打开 2 个以上的文件,例如通过键入,emacs file1 file2 file3它将在一个窗口中打开 file3,在另一个窗口中打开 file3,并在另一个窗口中显示一个“CRM 缓冲区”,其中列出了目录中的文件。

我如何让它打开 2 个以上的文件,以便将 emacs 框架分成 2 个以上的窗口?

请注意,“window”是指 emacs 意义上的窗口,而不是 MS windows 意义上的窗口(框架)。

答案1

inhibit-startup-buffer-menu您可以通过如下t设置来阻止缓冲区列表的出现这里。但是,这仍然不会产生超过 2 个窗口。查看 中的初始化代码startup.el,这似乎不可自定义。

但是,那ibuffer命令ibuffer-do-view(绑定到v)以您想要的方式显示多个缓冲区。您可以通过编程使用它。将其放入您的.emacs文件中:

(defun view-files-in-windows ()
  (ibuffer)                      ; Activate ibuffer mode.
  (ibuffer-mark-special-buffers) ; Mark the special buffers.
  (ibuffer-toggle-marks)         ; Toggle buffers, leaving the non-special ones
  (ibuffer-do-view))             ; Show each buffer in a different window.

然后像这样运行 emacs:

$ emacs file1 file2 file3 file4 --eval "(view-files-in-windows)"

(如果文件太多,窗口就会变得太小,从而失败。)

答案2

我不太熟悉ibuffer,但是如果你的文件是按顺序编号的,网格文件-sq可能是你在寻找的东西,或者你可以使用网格布局

相关内容