이 작업을 수행하는 기본 제공 방법은 레지스터입니다.
예를 들어 C-xrwa등록 할 현재 창 구성을 저장하는 데 사용 하십시오.
그런 다음 내장 바인딩 C-x1을 사용하여 실행할 수 있습니다.delete-other-windows
단일 파일 C-xrja을 다 본 후에는 레지스터 a에서 저장된 창 구성으로 돌아가려면을 사용하십시오.
한마디로 :
C-xrwa (구성을 레지스터에 저장)
C-x1 (다른 창 삭제)
C-xrja (저장된 창 구성을 다시 적용하십시오)
그래도 레지스터가 다루기 힘들다는 것을 알았습니다. 사용자 정의 창 구성 스택을 사용하여 구성을 관리합니다.
현재 구성을 스택에 푸시하고 상단 구성을 팝하고 적용하는 두 개의 바인딩이 있습니다.
따라서 장면에서 푸시 바인딩을 수행 한 다음 Cx 1을 수행 한 다음 팝 바인딩을 수행합니다.
코드는 다음과 같습니다.
(defvar winstack-stack '()
"A Stack holding window configurations.
Use `winstack-push' and
`winstack-pop' to modify it.")
(defun winstack-push()
"Push the current window configuration onto `winstack-stack'."
(interactive)
(if (and (window-configuration-p (first winstack-stack))
(compare-window-configurations (first winstack-stack) (current-window-configuration)))
(message "Current config already pushed")
(progn (push (current-window-configuration) winstack-stack)
(message (concat "pushed " (number-to-string
(length (window-list (selected-frame)))) " frame config")))))
(defun winstack-pop()
"Pop the last window configuration off `winstack-stack' and apply it."
(interactive)
(if (first winstack-stack)
(progn (set-window-configuration (pop winstack-stack))
(message "popped"))
(message "End of window stack")))
그런 다음 바인딩 할 수 있습니다 winstack-push
같은 것으로 C-cC-u하고, winstack-pop
하기 C-cC-o쉽게 주변에 이동합니다.