Zwiń podzielone okna

11

Biorąc pod uwagę podzielone okna, takie jak to:

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

Istnieją dwie opcje zwijania podzielonych okien:

  • delete-other-windows (Ctrl-x 1)
  • Usuń okno (Ctrl-x 0)

Pytanie : czy istnieje sposób, aby kontrolować, jak się zawalają?


Na przykład, jak mogę zwinąć się tak:

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

, to:

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

, to:

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

, albo to:

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

?

Początkujący
źródło

Odpowiedzi:

13

Wypróbuj okno asa .

Jeśli zwiążesz go w ten sposób:

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

Możesz przejść do okna 2, naciskając M-p 2. Możesz także usunąć okno 2, naciskając M-p x2: spowoduje to przejście do pierwszego przykładu. Inne przykłady następują po prostu poprzez zmianę ostatniego klucza.

Istnieją inne modyfikatory:

  • Użyj, xaby usunąć
  • Użyj, maby zamienić
  • Użyj, vaby podzielić pionowo
  • Użyj, baby podzielić poziomo
  • Służy ido usuwania innych okien niż wybrane
  • Służy odo usuwania innych okien niż bieżące
  • Użyj, naby przejść do ostatniego okna

Dwa ostatnie modyfikatory faktycznie nie wymagają dalszych danych wejściowych, podczas gdy inne zawsze monitują o okno, na którym można działać.

Modyfikatory można dostosowywać za pomocą aw-dispatch-alist. Klawisze okna (domyślnie 1/2/3/4 ...) można dostosowywać za pomocą aw-keys.

Oto ustawienie, którego używam:

(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
abo-abo
źródło
9

Funkcja delete-windowma opcjonalny argument WINDOW.

Funkcja window-in-directionma obowiązkowy argument DIRECTION i opcjonalne argumenty dla WINDOW IGNORE SIGN WRAP MIN. Aby dowiedzieć się więcej o tych argumentach, czytając ciąg doc, użytkownik może wpisać M-x describe-function RET window-in-direction RET.

Na przykład, następujące cztery funkcje mogą być użyte do kontrolowania kierunku usuwania okna. Użytkownik może chcieć przypisać skróty klawiaturowe.

(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 prawnicza
źródło