Jak mogę zmaksymalizować podzielone okno?


110

Wywołując :helpw Vimie, otrzymałem stronę podręcznika pomocy z podzielonym oknem. Chcę zmaksymalizować okno podręcznika pomocy i zamknąć drugie okno.

W jaki sposób mogę to zrobić? Jakie jest polecenie Vima, aby to zrobić?

Odpowiedzi:


88

Za pomocą: help [temat] otwierasz temat, który Cię interesuje.
Ctrl-Wo zminimalizuje pozostałe okna (pozostawiając otwarte / zmaksymalizowane tylko okno pomocy).
(Ctrl-Wo oznacza przytrzymanie Ctrl + W, a następnie o)


39
lub: tylko wykona zadanie.
— prawdopodobnie

14
Z pliku edycji, jak mogę wrócić do podręcznika pomocy po wykonaniu CTRL + W o?
— prawdopodobnie

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtitd. (patrz pomoc dla wincmd, switchbufdla szczegółów). Fujne jest to, że moja (IMHO) poprawna odpowiedź nie została jeszcze udzielona ...
— patrz

2
@ldigas: to (zaskakująca) opinia. Jeśli nie zacytujesz renomowanego źródła, będę to traktować jako twoje osobiste preferencje. Zwykle ich nie używam, ale ostatnio odkryłem, że używam ich do takich celów (tymczasowa maksymalizacja bufora bocznego; robienie rzeczy związanych z mocą, takich jak posiadanie wielu rozłącznych różnic obok siebie w jednej sesji vima). Zakładki są również cudem użyteczności z gvim --remote. Zawsze se guioptions=agimjednak używam, ponieważ wolę renderowanie kart w stylu konsoli.
— sehe

23
to zamknie inne okna, a jeśli masz jedno lub więcej okien, w których dokonałeś zmian i nie zapisałeś, to to nie zadziała - również myślę, że pytanie dotyczy maksymalizacji okna do pracy przez krótki czas w tym stanie, a potem później powrót do poprzedniego stanu - zamykając wszystkie okna, będziesz musiał użyć pliku sesji lub ręcznie otworzyć wszystkie inne okna, aby wrócić
— serup

133

Możesz zatrudnić Ctrl+WT( to jest kapitałT ), aby przenieść dowolne otwarte okno do jego własnej karty.

Jak wspominali inni Ctrl+W_/, Ctrl+W|aby zmaksymalizować w ramach bieżącego układu karty / okna (przy zachowaniu minimalnych ustawień wysokości / szerokości dla różnych innych okien).

( Ctrl+W=zmienia rozmiar wszystkich okien na równy rozmiar, przestrzegając minimalnych ustawień wysokości / szerokości)

Edytuj do komentarza

  1. start vim (np. gvim /tmp/test.cpp)
  2. wywołaj pomoc :help various-motions- otwiera podzielone okno
  3. przenieś pomoc do oddzielnej karty zmaksymalizowana: C-wT
  4. miłej lektury dobrej instrukcji :)
  5. przenieś pomoc z powrotem do oryginalnej karty:

    mAZZ<C-w>S`A
    
    • mA: ustaw globalny znak A
    • ZZ: zamknij bufor / kartę pomocy
    • C-wS: podziel oryginalne okno
    • `A: przeskocz do zapisanego znaku A

Możesz uniknąć używania znaku dla zwykłych buforów (bez pomocy). Daj mi znać, jeśli jesteś zainteresowany.


4
Po uzyskaniu zakładki z CTRL + WT, jak mogę wrócić do oryginalnych podzielonych okien?
— prawdopodobnie

2
@guru: wystarczy przełączyć zakładki jak zawsze (stosowanie Ctrl-PgUp, Ctrl-PgDownlub :tabnext, :tabprev). Aby zamknąć nowy (np pomocy) kartę, wykorzystywania ZZ, Ctrl-W, C, :q, :clo, :tabcloselub jakikolwiek inny sposób, w jaki zwykle blisko okna / zakładki
— sehe

1
Nie, to nie było pytanie. Załóżmy, że masz dwie karty, teraz nie chcesz żadnych kart, chcesz, aby dwa bufory były podzielonymi oknami. Czy jest jakieś jedno polecenie, aby to zrobić?
— prawdopodobnie

Redagowanie pytania zgodnie z ogólną procedurą. ( Pragnę dodać, że ton komentarze mogą natknąć się raczej nieprzyjazny W języku pisanym,. "No, that was not the question"Może brzmieć jak nagany Jestem pewien, że nie oznacza to źle. )
— sehe

@guru: odpowiedź jest aktualizowana. Było to nieco trudniejsze niż oczekiwano, ponieważ bufory pomocy są specjalne (i nie można ich używać :sbuftak, jak bym wolał). Nadzieja to pomaga
— sehe

53

Możesz rozszerzyć okno do jego maksymalnego rozmiaru za pomocą Ctrl+W_(podkreślenia). Ostateczny rozmiar rozwiniętego okna będzie ograniczony wartością winminheightopcji. Kiedy zamkniesz okno pomocy, poprzednie okna zostaną przywrócone do swoich poprzednich rozmiarów.


19
Ctrl+W o zamyka inne okna, więc ich nie ma. Dlatego używam Ctrl+W _.
— Greg Hewgill

2
Jak mogę odzyskać oryginalne dwa podzielone okna z plikiem do edycji i instrukcją pomocy?
— prawdopodobnie

3
Ctrl+W =Komenda zmienia rozmiar okna, więc wszystkie są mniej więcej tej samej wielkości.
— Greg Hewgill

14
W przypadku podziałów pionowych będziesz chciał użyć Ctrl+W |.
— Achal Dave

2
do wszystkich zagubionych dusz, które zdarzają się w tym wątku… aby wrócić do podzielonych widoków, użyj ctrl+w = // dzięki temu wszystkie okna będą tej samej wielkości
— duggi

19

Wolę do tego używać zakładek. Posługiwać się

:tabedit %

aby otworzyć plik zmaksymalizowany w nowej karcie, po zakończeniu wróć do starej konfiguracji z wszystkimi oknami za pomocą

:tabclose

Uważam, że jest to idealne rozwiązanie, ponieważ działa razem z :cwwtyczką Tagbar. Zaczerpnięte z: vim.wikia


13

Lubię używać „M”, aby maksymalizować i „m”, aby minimalizować.

Nie będzie wyglądać dobrze, ponieważ zmniejszy wszystkie inne otwarte okna, które znajdują się w tym samym buforze, ale okazało się, że jest bardziej przydatne w przypadku kart. Na przykład zamiast otwierać nową kartę dla tego pliku, a następnie zamykać go po zakończeniu lub chcieć zminimalizować.

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

Powodem nnoremap jest to, że nie obchodzi mnie rekurencyjne mapowanie, ale samo mapowanie też powinno działać.


1
Jeśli użyjesz nnoremap <C-W>M <C-W>\|<C-W>_(bez spacji po |), kursor nie przesunie się o 1 przy każdej maksymalizacji.
— rsanden

1
Podoba mi się to za pomocą odwrotnego ukośnika ( nnoremap <C-W>\ <C-W>\|<C-W>_). Czuje naturalny z wiązaniami domyślnych |, _i =.
— rsanden

6

Możesz uzyskać okno pomocy w pełnym rozmiarze bez zamykania / zmiany rozmiaru innych okien za pomocą

tab help {topic}

Spowoduje to otwarcie okna pomocy w nowej karcie, inne okna pozostaną bez zmian (naprawdę zmieniono rozmiar, aby można było wyświetlić tabelę, ale jest to tylko jedna dodatkowa linia powyżej). Możesz zamknąć pomoc jak zwykle: przynajmniej :bw<CR>i <C-w>cpracować dla mnie przy zamykaniu nowej karty.




2

Aby uzyskać tylko pomocy w górę, a następnie zamknij inne okno, to zrobić: :helpCTRL-WCTRL-W:close. Wtedy będziesz miał tylko pomoc.


1

w swoim .vimrc, po prostu umieść

nmap - :res<CR>:vertical res<CR>$

Jeśli chcesz zmaksymalizować bieżące okno, po prostu naciśnij - w trybie poleceń. Naciśnij =, jeśli chcesz przywrócić ostatni stan wielu okien


2
Fajnie, ale = nie przywraca „ostatniego statusu”.
— majkinetor

1

Jakoś wtyczka ZoomWin w ogóle nie działała dla mnie, teraz widzę, że są inne wtyczki, ale już to napisałem i daje mi dokładnie taki efekt, jaki chciałem (z drobnym dziwactwem opisanym poniżej) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

Użyj mapowanego klawisza (Leader i + w moim przypadku), aby przełączać się między zmaksymalizowanym / poprzednim układem. Jeśli zmienisz na inny podział na tej samej karcie, maksymalizacja zostanie wyłączona.

Jeśli zmienisz zakładki, podział pozostanie zmaksymalizowany, chociaż w jakiś sposób nie będzie już obejmował całej pełnej szerokości, a okna o zminimalizowanej szerokości odzyskują jakieś 4 kolumny lub coś takiego. W każdym razie działa to dla mnie zadowalająco, nawet z tym drobnym dziwactwem.

edit: jakoś to działa dobrze teraz, musiało zawiedli w jakiś sposób wcześniej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.