Как я могу подкачать положения двух открытых файлов (в разделениях) в энергии?

Предположите, что у меня есть некоторое произвольное расположение разделений в энергии.

____________________
| one       | two  |
|           |      |
|           |______|
|           | three|
|           |      |
|___________|______|

Есть ли способ подкачать one и two и поддержите то же расположение? Это просто в этом примере, но я ищу решение, которое поможет для более сложных макетов.

ОБНОВЛЕНИЕ:

Я предполагаю, что должен быть более ясным. Моим предыдущим примером было упрощение фактического примера использования. С фактическим экземпляром: alt text

Как я мог подкачать какие-либо два из тех разделений, поддержав то же расположение?

Обновление! 3 + несколько лет спустя...

Я поместил решение sgriffin в плагин Vim, который можно установить легко! Установите его со своим любимым сменным менеджером и дайте ему попытку: WindowSwap.vim

a little demo

304
задан wes 18 March 2014 в 13:00
поделиться

3 ответа

Начиная с этого:

____________________
| one       | two  |
|           |      |
|           |______|
|           | three|
|           |      |
|___________|______|

Сделайте «три» активным окном, затем введите команду ctrl + w J . Это перемещает текущее окно так, чтобы заполнить нижнюю часть экрана, оставляя вас с:

____________________
| one       | two  |
|           |      |
|___________|______|
| three            |
|                  |
|__________________|

Теперь сделайте активным окно «один» или «два», затем введите команду ctrl + w п . Это «поворачивает» окна в текущей строке, оставляя вас с:

____________________
| two       | one  |
|           |      |
|___________|______|
| three            |
|                  |
|__________________|

Теперь сделайте «два» активным окном и введите команду ctrl + w H . Это перемещает текущее окно, чтобы заполнить левую часть экрана, оставляя вас с:

____________________
| two       | one  |
|           |      |
|           |______|
|           | three|
|           |      |
|___________|______|

Как видите, маневр - это что-то вроде перемешивания. С 3 окнами это немного похоже на одну из головоломок в стиле «игра в плитку». Я не рекомендую пробовать это, если у вас 4 или более окон - лучше закрыть их, а затем снова открывать в желаемых положениях.

Я сделал скринкаст, демонстрирующий , как работать с разделенными окнами в Vim .

284
ответ дан 23 November 2019 в 01:21
поделиться

Взгляните на : h ctrl-w_ctrl-x и / или : h ctrl-w_ctrl-r . Эти команды позволяют вам менять или вращать окна в текущем макете.

Изменить: На самом деле, в данной ситуации это не сработает, потому что поменяется местами только в текущем столбце или строке. Вместо этого вы можете перейти в каждое из окон и выбрать целевой буфер, но это довольно многословно.

95
ответ дан 23 November 2019 в 01:21
поделиться

Рэнди прав в том, что CTRL-W x не хочет менять местами окна, которые не находятся в одной колонке/строке.

Я обнаружил, что клавиши CTRL-W HJKL наиболее полезны при работе с окнами. Они вытесняют текущее окно из его текущего местоположения и заставляют его занять весь край, указанный направлением нажатой клавиши. Подробнее см. в :help window-moving для получения дополнительной информации.

Для вашего примера выше, если вы начнете в окне "один", это сделает то, что вы хотите:

CTRL-W K   # moves window "one" to be topmost,
           #   stacking "one", "two", "three" top to bottom
CTRL-W j   # moves cursor to window "two"
CTRL-W H   # moves window "two" to be leftmost,
           #   leaving "one" and "three" split at right

Для удобства вы можете назначить нужные вам последовательности сопоставлениям клавиш (см. :help mapping).

30
ответ дан 23 November 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: