Bir pencere dışındaki tüm pencereleri kapatmanın ve ardından önceki pencere ayarlarına dönmenin hızlı yolu mu?


13

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?


Bu bağlantı yardımcı olabilir.
Nsukami _

3
"Kapat" veya "o karedeki her şeyi görmek" ile ne demek istediğinizi tam olarak açık değil. İlgilendiğiniz çerçeveyi (yükseltme ve) en üst düzeye çıkarmak, o çerçevedeki her şeyi görmenize izin vermeyecek mi? Diğer çerçeveler hala orada olurdu, ancak maksimize edilmiş çerçevenin arkasına gizlenecekti. İhtiyacınıza uygunsa, bunu başarmak önemsizdir.
Drew

1
Sadece emin olmak için, Emacs kelime çerçevesinin tanımını kullanıyorsunuz , değil mi? Pencere yöneticiniz tarafından yönetilen en üst düzey şey mi?
zck

@zck Ekranımı ayırdığım tek tek görünür tamponlar demek istiyorum. Tüm ekranı doldurmak için bir arabelleği en üst düzeye çıkarmak ve sonra geri almak, böylece tüm arabelleklerini orijinal yapılandırmalarında görebilmek istiyorum. Kelime dağarcığımı yanlış anlarsam özür dilerim, aramaya ve kullanmak için en iyi kelimeyi seçmeye çalıştım
Andrew

2
Terminolojiyi açıklığa kavuşturmak için, bkz: Bir arabellek, bir dosya, bir pencere ve bir çerçeve arasındaki fark nedir?
Dan

Yanıtlar:


15

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-modeve aradıktan sonra , pencereleri oldukları gibi ayarlayarak pencere yapılandırmasındaki değişikliği geri almak için C-x 1düğmesine basabilirsiniz C-c left.

Kazanan modu kalıcı olarak etkinleştirmek istiyorsanız (winner-mode), init dosyanızı girin.


7

Kullanmak winner-modekullanış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 1Durumları değiştirmek için bunu örneğin bağlayabilir ve aynı anahtarı kullanabilirsiniz.


1

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-editgeri 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))))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.