Я хочу закрити всі свої вікна, окрім поточного, і максимально збільшити рамку, щоб я міг швидко побачити все в буфері в одному вікні, а потім повернутися до попереднього налаштування вікна. Як би я пішов робити це?
Я хочу закрити всі свої вікна, окрім поточного, і максимально збільшити рамку, щоб я міг швидко побачити все в буфері в одному вікні, а потім повернутися до попереднього налаштування вікна. Як би я пішов робити це?
Відповіді:
Різні розділи тексту, які ви бачите у своєму Emacs, - це вікна . Наприклад, можна створити нове вікно за допомогою C-x 2
. Так, ця термінологія бентежить. Він передує більшості GUI-систем, тому він зрозумілий, якщо все ще заплутаний.
Але як тільки ми дізнаємося, що ми говоримо про Windows, ми можемо внести потрібні зміни Щоб позбутися всіх вікон, окрім того, в якому знаходиться точка, запустіть C-x 1
, картографуйте delete-other-windows
.
Потім, для повернення до того, що ви мали раніше, є досить корисна бібліотека під назвою режим переможця . Це дозволяє скасувати та повторно змінити налаштування вашого вікна.
Тож увімкніть режим переможця за допомогою M-x winner-mode
, а потім після дзвінка C-x 1
ви можете натиснути, C-c left
щоб скасувати зміну конфігурації вікна, повернувши вікна до того, якими вони були.
Якщо ви хочете остаточно ввімкнути режим переможця, вставте (winner-mode)
свій файл init.
Використання winner-mode
зручно, але якщо ви просто хочете перевертати назад і назад між одним вікном і конфігурацією з декількома вікнами, ось що я раніше використовував:
(defvar window-split-saved-config nil)
(defun window-split-toggle-one-window ()
"Make the current window fill the frame.
If there is only one window try reverting to the most recently saved
window configuration."
(interactive)
(if (and window-split-saved-config (not (window-parent)))
(set-window-configuration window-split-saved-config)
(setq window-split-saved-config (current-window-configuration))
(delete-other-windows)))
Ви можете зв’язати це, наприклад, C-x 1
і використати цю саму клавішу для перемикання станів.
Я використовую наступне, скопійоване з Інтернету. Це швидкий спосіб залишити поточну конфігурацію вікна. Після того, як ви закінчите, використовуйте exit-recursive-edit
для повернення.
;; http://www.emacswiki.org/emacs/RecursiveEditPreservingWindowConfig
;; inspired by Erik Naggum's `recursive-edit-with-single-window'
(defmacro recursive-edit-preserving-window-config (body)
"*Return a command that enters a recursive edit after executing BODY.
Upon exiting the recursive edit (with\\[exit-recursive-edit] (exit)
or \\[abort-recursive-edit] (abort)), restore window configuration
in current frame."
`(lambda ()
"See the documentation for `recursive-edit-preserving-window-config'."
(interactive)
(save-window-excursion
,body
(recursive-edit))))
(global-set-key (kbd "C-c 0") (recursive-edit-preserving-window-config (delete-window)))
(global-set-key (kbd "C-c 1") (recursive-edit-preserving-window-config
(if (one-window-p 'ignore-minibuffer)
(error "Current window is the only window in its frame")
(delete-other-windows))))