emacs, разделить конкретное окно

97

Это может быть глупый вопрос, но я не смог найти на него прямого решения. Я часто хочу разделить окно следующим образом

+--------------+-------------+             +--------------+-------------+
|              |             |             |              |             |
|              |             |             |              |             |
|              |             |             |              |             |
+--------------+             |     -->     |              |             |
|              |             |             |              |             |
|              |             |             |              |             |
|              |             |             |              |             |
+--------------+-------------+             +--------------+-------------+



+--------------+--------------+            +-----------------------------+
|              |              |            |                             |
|              |              |            |                             |
|              |              |            |                             |
+--------------+--------------+    -->     +-----------------------------+
|                             |            |                             |
|                             |            |                             |
|                             |            |                             |
+-----------------------------+            +-----------------------------+

В настоящее время я начинаю с ctrl- x 1а затем разделяю по вертикали / горизонтали. но мой настоящий вопрос заключается в том, как можно удалить конкретное окно, разделенное на части, не нарушая структуру другого окна? есть ли встроенная функция elisp?

любопытный герой
источник
мой плохой, копия вставлена ​​из моего emacs, как я могу отредактировать вопрос?
kindahero
Просто нажмите editссылку под тегами. На этот раз я сделал это для тебя. Также избегайте символов табуляции в середине строки. Это портит форматирование.
Марсело Кантос,
Вау, Марсело, спасибо за это. исправлено в
кратчайшие

Ответы:

141

Вы можете использовать C-x0комбинацию клавиш для удаления текущего окна.

Реми
источник
3
Спасибо, что дал мне ответ. Если быть точным, Cu Cx 0 привел к желаемому мной эффекту.
kindahero
Это также должно быть связано с Cw q в соответствии с поведением vim по умолчанию
Геннадий Мадан,
Я использую Emacs 30 лет и никогда не замечал этой возможности!
Blisterpeanuts
22

Ответ Реми - это то, что вы ищете, но режим победителя также чрезвычайно полезен для возврата к предыдущим конфигурациям окна после внесения любых произвольных изменений (например, восстановления этих множественных разделений после ввода C-x1).

Вы можете включить его в своем файле инициализации с помощью:

(winner-mode 1) ;"C-c <left>" and "C-c <right>" undo and re-do window changes.

См. Также: http://www.emacswiki.org/emacs/CategoryWindows

филы
источник