Згорнути розділені вікна


11

Враховуючи розділені вікна так:

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

Є два варіанти згортання розділених вікон:

  • delete-other-windows (Ctrl-x 1)
  • delete-window (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для переходу до останнього вікна

Останні два модифікатори насправді не потребують подальшого введення, в той час як інші завжди пропонують вам діяти вікно.

Модифікатори настроюються через aw-dispatch-alist. Клавіші вікон (які за замовчуванням становлять 1/2/3/4 ...) налаштовуються через aw-keys.

Ось налаштування, які я використовую:

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

9

Функція delete-windowмає необов'язковий аргумент WINDOW.

Функція window-in-directionмає обов'язковий аргумент DIRECTION та необов'язкові аргументи для WINDOW IGNORE SIGN WRAP MIN. Щоб дізнатися більше про ці аргументи, прочитавши doc-рядок, користувач може ввести M-x describe-function RET window-in-direction RET.

Наприклад, наступні чотири функції можуть бути використані для управління напрямком видалення вікна. Користувач може захотіти призначити комбінації клавіш.

(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)))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.