Встроенный способ сделать это с регистрами.
Например, используйте, C-xrwaчтобы сохранить текущую конфигурацию окна, чтобы зарегистрировать.
Тогда вы можете использовать встроенную привязку C-x1для запускаdelete-other-windows
после того, как вы закончите смотреть на один файл, используйте, C-xrjaчтобы вернуться к сохраненной конфигурации окна в реестре a.
Короче:
C-xrwa (сохранить конфигурацию в реестре)
C-x1 (удалить другие окна)
C-xrja (повторно сохранить сохраненную конфигурацию окна)
Хотя я считаю, что регистры громоздки, я использую собственный стек конфигурации окон для управления своими конфигурациями.
У меня есть две привязки, которые помещают текущую конфигурацию в стек, выталкивают и применяют верхнюю конфигурацию.
Итак, в вашем сценарии я бы выполнил привязку push, затем Cx 1, затем выполнил привязку pop.
Вот код:
(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легко прыгать.