Tüm pencerelerimi ancak geçerli olanı kapatmak ve çerçeveyi en üst düzeye çıkarmak istiyorum, böylece arabellekteki her şeyi bir pencerede hızlı bir şekilde görebiliyorum ve sonra önceki pencere kurulumuma geri dönebiliyorum. Bunu nasıl yapabilirim?
Tüm pencerelerimi ancak geçerli olanı kapatmak ve çerçeveyi en üst düzeye çıkarmak istiyorum, böylece arabellekteki her şeyi bir pencerede hızlı bir şekilde görebiliyorum ve sonra önceki pencere kurulumuma geri dönebiliyorum. Bunu nasıl yapabilirim?
Yanıtlar:
Emac'larınızda gördüğünüz metnin farklı bölümleri pencerelerdir . Örneğin, ile yeni bir pencere oluşturabilirsiniz C-x 2
. Evet, bu terminoloji kafa karıştırıcı. Çoğu GUI sisteminden önce gelir, bu yüzden kafa karıştırıcıysa anlaşılabilir.
Ancak pencerelerden bahsettiğimizi öğrendikten sonra, istediğiniz değişiklikleri yapabiliriz. Bu noktanın bulunduğu pencereden tüm pencerelerden kurtulmak, koşmak C-x 1
, eşlemek delete-other-windows
.
Sonra, daha önce sahip olduklarınıza geri dönmek için, kazanan modu adı verilen oldukça kullanışlı bir kütüphane var . Pencere yapılandırmanızdaki değişiklikleri geri almanızı ve yeniden yapmanızı sağlar.
Bu nedenle kazanan modunu etkinleştirin M-x winner-mode
ve aradıktan sonra , pencereleri oldukları gibi ayarlayarak pencere yapılandırmasındaki değişikliği geri almak için C-x 1
düğmesine basabilirsiniz C-c left
.
Kazanan modu kalıcı olarak etkinleştirmek istiyorsanız (winner-mode)
, init dosyanızı girin.
Kullanmak winner-mode
kullanışlıdır, ancak gerçekten sadece bir pencere ile çok pencereli yapılandırma arasında gidip gelmek istiyorsanız, işte daha önce kullandığım bir şey:
(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
Durumları değiştirmek için bunu örneğin bağlayabilir ve aynı anahtarı kullanabilirsiniz.
Web'den kopyalanan aşağıdakileri kullanıyorum. Geçerli pencere yapılandırmanızı bırakmanın hızlı bir yoludur. İşiniz bittikten sonra exit-recursive-edit
geri dönmek için kullanın .
;; 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))))