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.