web-dev-qa-db-ja.com

emacsで2つのファイルを開くときに、それらを並べて表示するにはどうすればよいですか?

次のように、コマンドラインから2つのファイルを使用してemacsを起動することがあります。

emacs foo.txt bar.txt

これにより、emacsウィンドウが開き、垂直方向に分割されます。

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

.emacsファイルを編集して、次のように並べて表示するにはどうすればよいですか?:

        |
foo.txt | bar.txt
        |

[〜#〜] edit [〜#〜]:明確にするために、私はこれを実現する方法を知っていますafteremacsは起動しました(Mx 0、Mx 3、次に右側のウィンドウでbar.txtに再度アクセスします)。 emacsを起動するときにデフォルトで並べて分割したいので、そうする必要はありません。

29
SuperElectric

垂直ウィンドウのペアを水平ウィンドウのペアに変更する関数は次のとおりです。

(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)
19
Sean

以下(.emacsに追加するため)は、ウィンドウ分割のデフォルトの結果を(上下にではなく)並べて表示します。

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

このデフォルトは、find-file-other-window(などのコマンドを起動したときにも適用されます。Ctrlx4f)。

(一方、ウィンドウを手動で分割して2つの並列バッファーを取得するには、 this 回答を検討してください)。

15
huitseeker

使用する M-x split-window-horizontallyまたはCtrl-x 3

7
Femi

これは私にとってうまくいきました。コマンドラインから-ffunction-nameを使用して、emacs分割画面ワークスペースを必要に応じてセットアップします。これにより、毎日更新する財務ファイルの2 x 2グリッドが得られ、最後に適切なウィンドウにカーソルが置かれます。これをエイリアスとして.bashrcに保存して、1つのコマンド(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'
5
Jack Hamilton

Split-window-horizo​​ntallyを使用します。

0
Marcin

Ctrl -x 2ウィンドウを上下に分割

バッファー1(上)
バッファ2(下)

Ctrl -xウィンドウを分割して並べて表示

バッファ1(left) |バッファ2(右)

C-M-v他のウィンドウをスクロールする

0
wsha