Ciutkan jendela yang terbagi

11

Diberikan split windows seperti ini:

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

Ada dua opsi untuk menciutkan jendela terbelah:

  • delete-other-windows (Ctrl-x 1)
  • delete-window (Ctrl-x 0)

Pertanyaan : apakah ada cara untuk mengontrol bagaimana mereka runtuh?


Misalnya, bagaimana saya bisa runtuh seperti ini:

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

, ini:

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

, ini:

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

, atau ini:

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

?

Pemula
sumber

Jawaban:

13

Coba jendela ace .

Jika Anda mengikatnya seperti ini:

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

Anda dapat beralih ke jendela 2 dengan menekan M-p 2. Anda juga dapat menghapus window 2 dengan menekan M-p x2: ini akan membawa Anda ke dalam contoh pertama Anda. Contoh lain ikuti dengan hanya mengubah kunci terakhir.

Ada pengubah lain yang hadir:

  • Gunakan xuntuk menghapus
  • Gunakan muntuk bertukar
  • Gunakan vuntuk membelah secara vertikal
  • Gunakan buntuk membelah secara horizontal
  • Gunakan iuntuk menghapus jendela lain dari yang dipilih
  • Gunakan ountuk menghapus windows lain dari yang sekarang
  • Gunakan nuntuk beralih ke jendela terakhir

Dua pengubah terakhir sebenarnya tidak membutuhkan input lebih lanjut, sementara yang lain selalu meminta Anda untuk bertindak.

Pengubah dapat dikustomisasi melalui aw-dispatch-alist. Kunci jendela (yang merupakan 1/2/3/4 ... secara default) dapat dikustomisasi via aw-keys.

Berikut pengaturan yang saya gunakan:

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

Fungsi ini delete-windowmemiliki argumen opsional WINDOW.

Fungsi ini window-in-directionmemiliki argumen wajib ARAH dan argumen opsional untuk WINDOW IGNORE SIGN WRAP MIN. Untuk mempelajari lebih lanjut tentang argumen ini dengan membaca doc-string, pengguna dapat mengetik M-x describe-function RET window-in-direction RET.

Misalnya, empat fungsi berikut dapat digunakan untuk mengontrol arah jendela yang dihapus. Seorang pengguna mungkin ingin menetapkan pintasan keyboard.

(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)))
daftar hukum
sumber