Recolher janelas divididas

11

Dadas janelas divididas como esta:

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

Existem duas opções para recolher as janelas divididas:

  • excluir outras janelas (Ctrl-x 1)
  • janela de exclusão (Ctrl-x 0)

Pergunta : existe uma maneira de controlar como eles colapsam?


Por exemplo, como posso recolher desta forma:

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

, esta:

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

, esta:

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

, ou isto:

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

?

Principiante
fonte

Respostas:

13

Tente ás-janela .

Se você ligá-lo assim:

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

Você pode alternar para a janela 2 pressionando M-p 2. Além disso, você pode excluir a janela 2 pressionando M-p x2: isso o levará ao seu primeiro exemplo. Outros exemplos seguem apenas alterando a chave final.

Existem outros modificadores presentes:

  • Use xpara excluir
  • Use mpara trocar
  • Use vpara dividir verticalmente
  • Use bpara dividir horizontalmente
  • Use ipara excluir outras janelas que não a selecionada
  • Use opara excluir outras janelas além da atual
  • Use npara mudar para a última janela

Na verdade, os dois últimos modificadores não requerem mais informações, enquanto os outros sempre solicitam uma janela para agir.

Os modificadores são personalizáveis ​​via aw-dispatch-alist. As teclas da janela (que são 1/2/3/4 ... por padrão) são personalizáveis ​​via aw-keys.

Aqui está a configuração que estou usando:

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

A função delete-windowpossui um argumento opcional WINDOW.

A função window-in-directionpossui um argumento obrigatório de DIRECTION e argumentos opcionais para WINDOW IGNORE SIGN WRAP MIN. Para aprender mais sobre esses argumentos lendo a sequência de documentos, um usuário pode digitar M-x describe-function RET window-in-direction RET.

Por exemplo, as quatro funções a seguir podem ser usadas para controlar a direção em que uma janela é excluída. Um usuário pode querer atribuir atalhos de teclado.

(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)))
lista de leis
fonte