分割ウィンドウを折りたたむ


10

このような分割ウィンドウを考えます:

|------|-------|
|1     |2      |
|      |       |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

分割ウィンドウを折りたたむ方法は2つあります。

  • 他のウィンドウを削除(Ctrl-x 1)
  • 削除ウィンドウ(Ctrl-x 0)

質問:それらがどのように崩壊するかを制御する方法はありますか?


たとえば、次のように折りたたむにはどうすればよいですか。

|------|-------|
|1             |
|              |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

、 この:

|------|-------|
|2             |
|              |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

、 この:

|------|-------|
|1     |2      |
|      |       |
|      |-------|
|      |4      |
|      |       |
|------|-------|

、またはこれ:

|------|-------|
|3     |2      |
|      |       |
|      |-------|
|      |4      |
|      |       |
|------|-------|

回答:


13

エースウィンドウを試してください。

次のようにバインドすると、

(global-set-key "M-p" 'ace-window)

を押すと、ウィンドウ2に切り替えることができますM-p 2。また、を押してウィンドウ2を削除できますM-p x2。これにより、最初の例に移動します。他の例では、最後のキーを変更するだけです。

存在する他の修飾子があります:

  • 使用するx削除します
  • mスワップに使用
  • v垂直分割に使用
  • b水平分割に使用
  • i選択したウィンドウ以外のウィンドウを削除するために使用します
  • o現在のウィンドウ以外のウィンドウを削除するために使用します
  • n最後のウィンドウに切り替えるために使用します

最後の2つの修飾子は、実際にはそれ以上の入力を必要としませんが、他の修飾子は常にウィンドウに作用するようにプロンプ​​トを出します。

修飾子はを介してカスタマイズ可能aw-dispatch-alistです。ウィンドウキー(デフォルトでは1/2/3/4 ...)はを介してカスタマイズできますaw-keys

これが私が使っている設定です:

(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))

8

この関数にdelete-windowは、オプションの引数WINDOWがあります。

この関数にwindow-in-directionは、DIRECTIONの必須引数とWINDOW IGNORE SIGN WRAP MINのオプション引数があります。doc-stringを読んでこれらの引数の詳細を知るには、ユーザーはと入力しM-x describe-function RET window-in-direction RETます。

たとえば、次の4つの関数を使用して、ウィンドウが削除される方向を制御できます。ユーザーがキーボードショートカットを割り当てたい場合があります。

(defun delete-window-above ()
"Delete window in direction 'above."
(interactive)
  (delete-window (window-in-direction 'above)))

(defun delete-window-below ()
"Delete window in direction 'below."
(interactive)
  (delete-window (window-in-direction 'below)))

(defun delete-window-left ()
"Delete window in direction 'left."
(interactive)
  (delete-window (window-in-direction 'left)))

(defun delete-window-right ()
"Delete window in direction 'right."
(interactive)
  (delete-window (window-in-direction 'right)))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.