Если у меня в сеансе VIM было открыто x или более окон, и я хотел на мгновение быстро спрятать все, кроме активного, затем вернуть окна в макет, который у меня был, как мне это сделать?
Если у меня в сеансе VIM было открыто x или более окон, и я хотел на мгновение быстро спрятать все, кроме активного, затем вернуть окна в макет, который у меня был, как мне это сделать?
Ответы:
В 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
).
Я использую CTRL-W _, чтобы «вытолкнуть» другие окна по горизонтали, чтобы текущее окно расширилось до максимально доступной области. Используйте CTRL-W | сделать то же самое по вертикали. Я уверен, что, вероятно, есть способ сделать оба одновременно, но я не заметил или искал это. Смотрите в: помощь CTRL-W
Для их восстановления сделайте CTRL-W =. Одно предостережение, что они не восстановлены в своей первоначальной конфигурации. CTRL-W = фактически пересчитывает наилучшее соответствие для всех окон на экране.
Насколько я знаю, нет никакого способа просто переключаться между двумя различными макетами окон, но вы можете скрыть все другие окна, выполнив команду :only
(или :on
). См. Справку Vim для этой команды .