Cách nhanh chóng để đóng tất cả trừ một cửa sổ, và sau đó trở lại thiết lập cửa sổ trước đó?


12

Tôi muốn đóng tất cả các cửa sổ của mình nhưng cửa sổ hiện tại và tối đa hóa khung để tôi có thể nhanh chóng nhìn thấy mọi thứ trong bộ đệm trong một cửa sổ đó, sau đó trở lại thiết lập cửa sổ trước đó. Tôi sẽ đi đâu để tới đó?


Liên kết này có thể giúp đỡ.
Nsukami _

3
Không thực sự rõ ràng những gì bạn có nghĩa là "đóng" hoặc "nhìn thấy mọi thứ trong một khung hình đó". (Tăng và) tối đa hóa khung hình mà bạn quan tâm sẽ không cho phép bạn nhìn thấy mọi thứ trong khung đó? Các khung khác sẽ vẫn ở đó, nhưng sẽ bị ẩn đằng sau khung tối đa. Điều này là tầm thường để thực hiện, nếu nó phù hợp với nhu cầu của bạn.
vẽ

1
Để chắc chắn, bạn đang sử dụng định nghĩa Emacs của khung từ , phải không? Điều cấp cao nhất được quản lý bởi người quản lý cửa sổ của bạn?
zck

@zck Ý tôi là bộ đệm hiển thị riêng lẻ mà màn hình của tôi được chia thành. Tôi muốn tối đa hóa một bộ đệm để lấp đầy toàn bộ màn hình, và sau đó hoàn tác nó để tôi có thể thấy tất cả các bộ đệm trong cấu hình ban đầu của chúng. Tôi xin lỗi nếu tôi có từ vựng sai, tôi đã cố tìm nó và chọn từ tốt nhất để sử dụng
Andrew

Câu trả lời:


14

Các phần khác nhau của văn bản bạn nhìn thấy trong Emacs của bạn là các cửa sổ . Bạn có thể, ví dụ, tạo một cửa sổ mới với C-x 2. Vâng, thuật ngữ này là khó hiểu. Nó có trước hầu hết các hệ thống GUI, vì vậy có thể hiểu được nếu vẫn còn khó hiểu.

Nhưng một khi chúng ta biết chúng ta đang nói về windows, chúng ta có thể thực hiện những thay đổi bạn muốn. Để thoát khỏi tất cả các cửa sổ ngoại trừ cửa sổ đang chạy C-x 1, hãy chạy , ánh xạ tới delete-other-windows.

Sau đó, để quay lại những gì bạn có trước đây, có một thư viện khá hữu ích được gọi là chế độ người chiến thắng . Nó cho phép bạn hoàn tác và làm lại các thay đổi đối với cấu hình cửa sổ của bạn.

Vì vậy, kích hoạt chế độ người chiến thắng với M-x winner-mode, và sau đó sau khi bạn gọi C-x 1, bạn có thể nhấn C-c leftđể hoàn tác thay đổi cấu hình cửa sổ, đặt các cửa sổ trở lại như cũ.

Nếu bạn muốn bật chế độ người chiến thắng vĩnh viễn, hãy đặt (winner-mode)tệp init của bạn.


7

Sử dụng winner-moderất tiện lợi, nhưng nếu bạn thực sự chỉ muốn lật qua lại giữa một cửa sổ và cấu hình nhiều cửa sổ, thì đây là thứ tôi đã sử dụng trước đây:

(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)))

Bạn có thể liên kết nó với ví dụ C-x 1và sử dụng cùng khóa đó để chuyển trạng thái.


1

Tôi sử dụng như sau, sao chép từ web. Đó là một cách nhanh chóng để rời khỏi cấu hình cửa sổ hiện tại của bạn. Sau khi bạn sử dụng xong exit-recursive-editđể lấy lại.

;; 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))))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.