在emacs中打开2个文件时,如何让它们并排显示?

时间:2011-07-14 17:35:14

标签: emacs dot-emacs

有时我会从命令行启动带有2个文件的emacs,如下所示:

emacs foo.txt bar.txt

这将打开emacs窗口,垂直拆分:

foo.txt
-------
bar.txt

如何编辑我的.emacs文件以便它们并排显示?:

        |
foo.txt | bar.txt
        |

编辑:为了澄清,我知道如何在 emacs启动后发生这种情况(Mx 0,Mx 3,然后重新访问右侧的bar.txt窗口)。我只是希望emacs在我启动时默认并排拆分,所以我不必这样做。

7 个答案:

答案 0 :(得分:18)

这是一个将一对垂直窗口改为一对水平窗口的函数:

(defun 2-windows-vertical-to-horizontal ()
  (let ((buffers (mapcar 'window-buffer (window-list))))
    (when (= 2 (length buffers))
      (delete-other-windows)
      (set-window-buffer (split-window-horizontally) (cadr buffers)))))

要在启动时自动执行此操作,请将此功能添加到emacs-startup-hook

(add-hook 'emacs-startup-hook '2-windows-vertical-to-horizontal)

答案 1 :(得分:15)

以下(添加到.emacs中)使窗口拆分默认结果为并排缓冲区(而不是一个在另一个缓冲区之上):

(setq split-height-threshold nil) 
(setq split-width-threshold 0) 

当您启动find-file-other-window之类的命令时,此默认设置也适用( Ctrl x 4 f < / KBD>)。

(另一方面,要手动拆分窗口以获得两个并排缓冲区,请考虑this回答)。

答案 2 :(得分:7)

使用M-x split-window-horizontallyCtrl-x 3

答案 3 :(得分:5)

这对我来说效果很好。使用命令行中的-f function-name可以根据需要设置emacs分屏工作区。这给了我每天更新的2 x 2网格的财务文件,并将光标设置在最后的相应窗口上。我将此保存为.bashrc作为别名,因此我可以使用一个命令(doc_financial)将其提取。

alias doc_financial='emacs -nw financial_accounts.txt -f split-window-horizontally financial_budget.txt -f split-window-vertically financial_taxes.txt -f other-window -f split-window-vertically financial_tasks.txt -f other-window -f other-window -f other-window'

答案 4 :(得分:0)

使用水平分割窗口。

答案 5 :(得分:0)

Ctrl -x 2 分割窗口,上方和下方

缓冲液1(上图)
缓冲区2(下方)

Ctrl -x 3 拆分窗口,并排

缓冲区1(左)|缓冲区2(右)

<强> c ^-M-V 滚动其他窗口

答案 6 :(得分:0)

;; 15-Oct-20  open first file in left window
(defun my-startup-layout ()
  (let ((buffers (mapcar 'window-buffer (window-list))))
    (when (= 2 (length buffers))
      (delete-other-windows)
      (set-window-buffer (split-window-horizontally) (cadr buffers))))
)

(add-hook 'emacs-startup-hook 'my-startup-layout)
(add-hook 'emacs-startup-hook 'next-multiframe-window)
;; end of customization to open first file on left
;;