Pencere bölme yönünü değiştir, en hızlı yol


16

Diyelim ki açık iki tamponunuz var:

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

Bunu elde etmek için tamponları değiştirmenin en hızlı yolu nedir:

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

stackoverflow.com/a/10546694 . devrik çerçeve kitaplığı. Feragat - denemedim.
Faheem Mitha

Bu konuda bir wiki sayfası var: emacswiki.org/emacs/ToggleWindowSplit
Chris Martin

Bkz. Emacs.stackexchange.com/q/5371 ; özellikle bir cevap transpose-frameMELPA'dan bahsetmektedir .
TooTone

Yanıtlar:


15

İşte aradığınızı yapacak bir kusur:

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

(Utanmazca Magnars'tan kopyalandı. Emacs.d )

Ayrıca, tekrar ararsanız, pencerelerinizi orijinal dikey yönde yeniden böler.


Bunun iki pencerenin göreceli boyut ilişkisini koruyabilmesi hoş olurdu. Sık sık altta dengesiz bir "kısa" pencere tutuyorum ve ileri geri geçiş yaparken bu göreceli boyutu korumak yararlı olacaktır. Dar bir dikey pencere muhtemelen daha az kullanışlı olsa da.
b4hand

1
Bunu kaç kez kullandığımı söyleyemem. Çok yardımsever.
Edgar Aroutiounian
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.