Vim несколько окон / скрыть

9

Если у меня в сеансе VIM было открыто x или более окон, и я хотел на мгновение быстро спрятать все, кроме активного, затем вернуть окна в макет, который у меня был, как мне это сделать?

MageProspero
источник
Плагин zoomwin делает это.
Конюшня

Ответы:

8

В Vim 7 и более поздних версиях вы можете использовать для этого «вкладку» (то есть вкладку «в стиле GUI»). Вы можете использовать :tabкоманду либо :splitили :sbuffer:

:tab split
:tab sp      " shorter version

:tab sbuffer
:tab sb      " shorter version

И то, splitи другое sbufferделают почти одно и то же при использовании без дополнительных аргументов (разбить текущий буфер). Вы, вероятно, захотите использовать, splitесли ожидаете, что захотите загрузить какое-то (возможно, еще не загруженное) имя пути ( split path/to/some/fileхотя вы можете просто использовать :tabeвместо этого, так как это в контексте открытия новой вкладки); sbufferоблегчает переключение на существующий буфер ( sb {bufnum}или sb {bufname}).

Открыв новую вкладку, вы можете использовать gTи gtдля переключения между полученными вкладками (или элементами управления графическим интерфейсом, если вы используете версию Vim с графическим интерфейсом). Когда вы закончите работу со своей вкладкой в ​​одном окне, просто :qзакройте окно (и, следовательно, вкладку) и вернитесь к исходной вкладке (с ее исходным расположением окон), или используйте :tabclose( :tabc), или переключитесь обратно на исходную вкладку и используйте :tabonly( :tabo).

Крис Джонсен
источник
10

Я использую CTRL-W _, чтобы «вытолкнуть» другие окна по горизонтали, чтобы текущее окно расширилось до максимально доступной области. Используйте CTRL-W | сделать то же самое по вертикали. Я уверен, что, вероятно, есть способ сделать оба одновременно, но я не заметил или искал это. Смотрите в: помощь CTRL-W

Для их восстановления сделайте CTRL-W =. Одно предостережение, что они не восстановлены в своей первоначальной конфигурации. CTRL-W = фактически пересчитывает наилучшее соответствие для всех окон на экране.

frogstarr78
источник
Проверьте, чтобы быть аккуратным взломать для реализации.
MageProspero
7

Насколько я знаю, нет никакого способа просто переключаться между двумя различными макетами окон, но вы можете скрыть все другие окна, выполнив команду :only(или :on). См. Справку Vim для этой команды .

Кусалананда
источник
2
Невозможно вернуться к предыдущему макету с этим. Ответ Криса Джонсена также позволяет нам сделать это.
Фани