ฉันต้องการปิดหน้าต่างทั้งหมดของฉัน แต่หน้าต่างปัจจุบันและเพิ่มเฟรมให้ใหญ่ที่สุดเพื่อที่ฉันจะได้เห็นทุกอย่างในบัฟเฟอร์ในหน้าต่างนั้นอย่างรวดเร็วจากนั้นกลับสู่การตั้งค่าหน้าต่างก่อนหน้าของฉัน ฉันจะทำสิ่งนี้อย่างไร
ฉันต้องการปิดหน้าต่างทั้งหมดของฉัน แต่หน้าต่างปัจจุบันและเพิ่มเฟรมให้ใหญ่ที่สุดเพื่อที่ฉันจะได้เห็นทุกอย่างในบัฟเฟอร์ในหน้าต่างนั้นอย่างรวดเร็วจากนั้นกลับสู่การตั้งค่าหน้าต่างก่อนหน้าของฉัน ฉันจะทำสิ่งนี้อย่างไร
คำตอบ:
ส่วนที่แตกต่างกันของข้อความที่คุณเห็นใน 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))))