我希望能够自动执行在单个框架下打开 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)"
(如果文件太多,窗口就会变得太小,从而失败。)