ウィンドウ分割の方向を切り替える、最速の方法


16

次のように2つのバッファを開いているとします。

------------------------------------
            |                      |
  buffer 1  |        buffer 2      |       
            |                      |
------------------------------------

これを得るためにバッファを切り替える最も速い方法は何ですか:

------------------------------------
           buffer 1                |
                                   |
------------------------------------
            buffer 2               |
                                   |
------------------------------------

stackoverflow.com/a/10546694。トランスポーズフレームライブラリ。免責事項-試していません。
ファヒムミタ14

このトピックにはwikiページがあります:emacswiki.org/emacs/ToggleWindowSplit
Chris Martin

emacs.stackexchange.com/q/5371を参照してください。特にtranspose-frame、MELPAに関する1つの回答があります。
-TooTone

回答:


15

探しているものを実行するdefunは次のとおりです。

(defun toggle-window-split ()
  (interactive)
  (if (= (count-windows) 2)
      (let* ((this-win-buffer (window-buffer))
             (next-win-buffer (window-buffer (next-window)))
             (this-win-edges (window-edges (selected-window)))
             (next-win-edges (window-edges (next-window)))
             (this-win-2nd (not (and (<= (car this-win-edges)
                                         (car next-win-edges))
                                     (<= (cadr this-win-edges)
                                         (cadr next-win-edges)))))
             (splitter
              (if (= (car this-win-edges)
                     (car (window-edges (next-window))))
                  'split-window-horizontally
                'split-window-vertically)))
        (delete-other-windows)
        (let ((first-win (selected-window)))
          (funcall splitter)
          (if this-win-2nd (other-window 1))
          (set-window-buffer (selected-window) this-win-buffer)
          (set-window-buffer (next-window) next-win-buffer)
          (select-window first-win)
          (if this-win-2nd (other-window 1))))))

Magnars .emacs.dから恥知らずにコピーされた)

さらに、もう一度呼び出すと、元の垂直方向にウィンドウが再分割されます。


これにより、2つのウィンドウの相対的なサイズの関係を維持できると便利です。下部に不均一な「短い」ウィンドウを保持することがよくあります。前後に切り替えるときは、この相対的なサイズを維持すると役立ちます。狭い垂直ウィンドウはおそらく有用ではありませんが。
b4hand

1
これを何回使用したかわかりません。とても助かりました。
エドガーAroutiounian 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.