가장 빠른 방법으로 창 분할 방향 전환


16

이렇게 두 개의 버퍼가 열려 있다고 가정 해보십시오.

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

버퍼를 전환하는 가장 빠른 방법은 다음과 같습니다.

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

stackoverflow.com/a/10546694 . 조옮김 프레임 라이브러리. 면책 조항-시도하지 않았습니다.
Faheem Mitha

이 주제에 관한 wiki 페이지가 있습니다 : emacswiki.org/emacs/ToggleWindowSplit
Chris Martin

emacs.stackexchange.com/q/5371을 참조하십시오 . 특히 transpose-frameMELPA에 대한 답변이 하나 있습니다.
TooTone

답변:


15

찾고있는 일을하는 즐거움은 다음과 같습니다.

(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 에서 뻔뻔 스럽게 복사 )

또한 다시 호출하면 창을 원래 세로 방향으로 다시 분할합니다.


이것이 두 창의 상대적인 크기 관계를 유지할 수 있다면 좋을 것입니다. 나는 종종 바닥에 고르지 않은 "짧은"창을 유지하고, 앞뒤로 전환 할 때이 상대적 크기를 유지하는 것이 도움이 될 것입니다. 좁은 세로 창은 유용하지 않을 수 있습니다.
b4hand

1
나는 이것을 몇 번이나 사용하는지 말할 수 없다. 도움이되었습니다.
Edgar Aroutiounian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.