Швидкий спосіб закрити всі, крім одного вікна, а потім повернутися до попереднього налаштування вікна?


13

Я хочу закрити всі свої вікна, окрім поточного, і максимально збільшити рамку, щоб я міг швидко побачити все в буфері в одному вікні, а потім повернутися до попереднього налаштування вікна. Як би я пішов робити це?


Це посилання може допомогти.
Nsukami _

3
Незрозуміло, що ви маєте на увазі під "близьким" чи "бачити все в одному кадрі". Ви (підняття та) максимізація кадру, який вас цікавить, не дозволить вам бачити все в цьому кадрі? Інші кадри все ще будуть там, але вони будуть приховані за максимальним кадром. Це банально здійснити, якщо це відповідає вашим потребам.
Дрю

1
Просто для того, щоб переконатися, ви використовуєте визначення Emacs для слова word frame , правда? Найвищий рівень, яким керує ваш менеджер вікон?
zck

@zck Я маю на увазі окремі видимі буфери, на які я розділив свій екран. Я хочу максимально використовувати один буфер, щоб заповнити весь екран, а потім скасувати його, щоб я міг бачити всі буфери в їх початковій конфігурації. Прошу вибачення, якщо я неправильно сприйняв лексику, я спробував розібратися і вибрати найкраще слово для вживання
Ендрю

2

Відповіді:


15

Різні розділи тексту, які ви бачите у своєму 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.


7

Використання 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і використати цю саму клавішу для перемикання станів.


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))))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.