1つを除くすべてのウィンドウを閉じてから、以前のウィンドウ設定に戻す簡単な方法は?


12

現在のウィンドウ以外のすべてのウィンドウを閉じ、フレームを最大化して、その1つのウィンドウのバッファー内のすべてをすばやく確認してから、以前のウィンドウ設定に戻したいです。これを行うにはどうすればよいですか?


このリンクが役立つ場合があります。
ヌスカミ_

3
「閉じる」または「その1つのフレームのすべてを見る」という意味が明確ではありません。関心のあるフレームを(上げて)最大化すると、そのフレームのすべてが表示されなくなりますか?他のフレームはまだ存在しますが、最大化されたフレームの後ろに隠されます。これは、必要に応じて達成するのは簡単です。
2016

1
念のため、Emacsのframeという単語の定義を使用していますよね?ウィンドウマネージャーが管理する最上位のものは何ですか?
zck 2016

@zck私が画面を分割した個々の表示バッファを意味します。1つのバッファを最大化して画面全体に表示し、それを元に戻してすべてのバッファを元の構成で表示できるようにします。ボキャブラリーを間違えた場合は謝罪します。私はそれを調べて、使用するのに最適な単語を選択しようとしました
Andrew

回答:


14

Emacsに表示されるテキストのさまざまなセクションはウィンドウです。たとえば、を使用して新しいウィンドウを作成できますC-x 2。はい、この用語は紛らわしいです。ほとんどのGUIシステムよりも古いため、混乱する場合でも理解できます。

しかし、ウィンドウについて話していることがわかったら、必要な変更を行うことができます。ポイントがあるウィンドウ以外のすべてのウィンドウを削除するには、を実行しC-x 1、にマップしdelete-other-windowsます。

次に、以前のものに戻るために、winner-modeという非常に便利なライブラリがあります。ウィンドウ構成の変更を元に戻したり、やり直したりできます。

したがって、で勝者モードを有効にしM-x winner-mode、を呼び出した後C-x 1、を押すC-c leftと、ウィンドウ構成への変更を元に戻して、ウィンドウを元の状態に戻すことができます。

勝者モードを永続的に有効にする場合(winner-mode)は、initファイルに入れます。


7

を使用するのwinner-modeは便利ですが、1つのウィンドウとマルチウィンドウ構成の間を行き来するだけの場合は、これまでに使用したことがありません。

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

これをegにバインドし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))))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.