Wie kann ich ein geteiltes Fenster maximieren?

110

Beim Aufrufen :helpin Vim habe ich die Hilfeseite mit geteiltem Fenster erhalten. Ich möchte das Hilfehandbuchfenster maximieren und das andere Fenster schließen.

Wie kann ich das machen? Was ist der Vim-Befehl, um dies zu tun?

shibly
quelle

Antworten:

88

Mit : help [topic] öffnen Sie ein Thema, das Sie interessiert.
Strg-Wo minimiert die anderen Fenster (wobei nur das Hilfefenster geöffnet / maximiert bleibt).
(Strg-Wo bedeutet, Strg gedrückt zu halten, W zu drücken und dann o)

Turm
quelle
39
oder: nur wird die Arbeit erledigen.
voraussichtlich
14
Wie kann ich aus der Bearbeitungsdatei nach dem Drücken von STRG + W o zum Hilfehandbuch zurückkehren?
voraussichtlich
3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtusw. (siehe Hilfe für wincmd, switchbuffür Details). Das Lustige ist, dass meine (IMHO) richtige Antwort noch nicht gegeben wurde ...
sehe
2
@ldigas: das ist eine (überraschende) meinung. Wenn Sie keine seriöse Quelle zitieren, werde ich das wirklich als Ihre persönliche Präferenz betrachten. Normalerweise benutze ich sie nicht, aber ich habe kürzlich festgestellt, dass ich sie für solche Dinge benutze (vorübergehende Maximierung eines Seitenpuffers; Power-Sachen wie mehrere disjunkte nebeneinander liegende Unterschiede in einer einzigen Vim-Sitzung). Tabs sind auch ein Usability-Wunder gvim --remote. Ich verwende es jedoch immer, se guioptions=agimweil ich das konsolenähnliche Rendern von Registerkarten bevorzuge.
sehe
23
Dadurch werden andere Fenster geschlossen. Wenn Sie ein oder mehrere Fenster haben, in denen Sie Änderungen vorgenommen und nicht gespeichert haben, funktioniert dies nicht. Ich denke, es geht auch darum, das Fenster so zu maximieren, dass es für kurze Zeit in diesem Zustand und später funktioniert Zurück zum vorherigen Zustand -
Wenn
133

Sie können Ctrl+WT( das ist ein KapitalT ) verwenden, um jedes geöffnete Fenster auf eine eigene Registerkarte zu verschieben.

Wie von anderen erwähnt Ctrl+W_/ Ctrl+W|um innerhalb des aktuellen Registerkarten- / Fensterlayouts zu maximieren (unter Berücksichtigung der Mindesteinstellungen für Höhe / Breite für verschiedene andere Fenster).

( Ctrl+W=Ändert die Größe aller Fenster unter Berücksichtigung der Mindesteinstellungen für Höhe / Breite auf die gleiche Größe.)

Bearbeiten Zum Kommentar

  1. starte vim (zB gvim /tmp/test.cpp)
  2. Hilfe aufrufen :help various-motions- öffnet ein geteiltes Fenster
  3. Hilfe in separate Registerkarte verschieben maximiert: C-wT
  4. viel Spaß beim Lesen des schönen Handbuchs :)
  5. Verschieben Sie die Hilfe zurück in die ursprüngliche Registerkarte:

    mAZZ<C-w>S`A
    
    • mA: Globalmarkierung A setzen
    • ZZ: Hilfepuffer / Tab schließen
    • C-wS: Originalfenster teilen
    • `A: Zur gespeicherten Marke A springen

Sie können die Verwendung einer Markierung für normale (nicht hilfreiche) Puffer vermeiden. Lassen Sie mich wissen, wenn Sie interessiert sind.

sehe sehen
quelle
4
Wie kann ich nach dem Tabulator mit STRG + WT zu den ursprünglichen geteilten Fenstern zurückkehren?
voraussichtlich
2
@guru: einfach wechseln Laschen wie immer (verwenden Ctrl-PgUp, Ctrl-PgDownoder :tabnext, :tabprev). So schließen Sie die neue (zB Hilfe) Registerkarte Verwendung ZZ, Ctrl-W, C, :q, :clo, :tabcloseoder jede andere Art und Weise Sie in der Regel schließen Fenster / Tabs
sehe
1
Nein, das war nicht die Frage. Angenommen, Sie haben zwei Registerkarten, jetzt möchten Sie keine Registerkarten, sondern zwei Puffer als geteilte Fenster. Gibt es einen Befehl, um dies zu tun?
Shibly
Frage mit allgemeiner Vorgehensweise bearbeiten. ( Ich möchte hinzufügen, dass der Ton Ihrer Kommentare eher unfreundlich wirkt. In schriftlicher Sprache "No, that was not the question"klingt dies möglicherweise als Verweis. Ich bin sicher, Sie meinen es nicht schlecht )
siehe
@ Guru: Antwort wird aktualisiert. Es war etwas kniffliger als erwartet, da Hilfepuffer etwas Besonderes sind (und Sie sie nicht so verwenden können, :sbufwie ich es normalerweise vorziehen würde). Hoffe das hilft
sehe
53

Sie können ein Fenster mit Ctrl+W_(Unterstrich) auf seine maximale Größe erweitern . Die endgültige Größe des erweiterten Fensters wird durch den Wert der winminheightOption eingeschränkt. Wenn Sie das Hilfefenster schließen, werden Ihre vorherigen Fenster auf ihre früheren Größen zurückgesetzt.

Greg Hewgill
quelle
19
Ctrl+W o schließt die anderen Fenster, damit sie weg sind. Deshalb benutze ich Ctrl+W _.
Greg Hewgill
2
Wie kann ich die beiden ursprünglichen Fenster mit der Bearbeitungsdatei und dem Hilfehandbuch wiederherstellen?
voraussichtlich
3
Der Ctrl+W =Befehl ändert die Größe von Fenstern so, dass sie alle ungefähr gleich groß sind.
Greg Hewgill
14
Für vertikale Teilungen möchten Sie verwenden Ctrl+W |.
Achal Dave
2
Für alle verlorenen Seelen, die in diesem Thread vorkommen ... um zu geteilten Ansichten zurückzukehren, verwenden Sie ctrl+w = // dies macht alle Fenster gleich groß
duggi
19

Ich bevorzuge es, dafür Tabs zu verwenden. Verwenden

:tabedit %

Wenn Sie fertig sind, kehren Sie mit allen Fenstern zum alten Setup zurück, um eine in einem neuen Tab maximierte Datei zu öffnen

:tabclose

Ich finde das die ideale Lösung, da dies mit :cwund dem Tagbar-Plugin zusammenarbeitet. Entnommen aus: vim.wikia

Azrael3000
quelle
13

Ich benutze gerne 'M' zum Maximieren und 'm' zum Minimieren.

Es wird nicht gut aussehen, da es alle anderen geöffneten Fenster verkleinert, die sich im selben Puffer befinden, aber ich fand es nützlicher, wenn es um Registerkarten geht. Anstatt beispielsweise eine neue Registerkarte für diese Datei zu öffnen, müssen Sie sie schließen, nachdem Sie damit fertig sind oder sie minimieren möchten.

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

Der Grund für nnoremap ist, dass mir rekursives Mapping egal ist, aber nur Map sollte auch funktionieren.

Gustavo Matias
quelle
1
Wenn Sie nnoremap <C-W>M <C-W>\|<C-W>_(ohne das Leerzeichen danach |) verwenden, bewegt sich der Cursor bei jeder Maximierung nicht um 1.
Rsanden
1
Ich mag das mit backslash ( nnoremap <C-W>\ <C-W>\|<C-W>_). Es fühlt sich natürlich mit den Standardbindungen |, _und =.
Rsanden
6

Sie können das Hilfefenster in voller Größe erhalten, ohne andere Fenster mit zu schließen oder in der Größe zu ändern

tab help {topic}

Dadurch wird das Hilfefenster in einem neuen Tab geöffnet, andere Fenster bleiben unverändert (die Größe wird so geändert, dass die Tabline angezeigt werden kann, dies ist jedoch nur eine zusätzliche Zeile darüber). Sie können die Hilfe wie gewohnt schließen: Zumindest :bw<CR>und <C-w>carbeiten Sie für mich, indem Sie auch einen neuen Tab schließen.

ZyX
quelle
5

Installieren Sie das Plugin vim-maximizer , dann können Sie das aktuelle Fenster maximieren und mit wiederherstellenF3

Searene
quelle
2

Gehen Sie folgendermaßen vor, um nur die Hilfe zu erhalten und das andere Fenster zu schließen : :helpCTRL-WCTRL-W:close. Dann haben Sie nur noch die Hilfe.

Jeff Ferland
quelle
1

Platzieren Sie es einfach in Ihrer .vimrc

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

Wenn Sie das aktuelle Fenster maximieren möchten, drücken Sie einfach - im Befehlsmodus. Drücken Sie =, wenn Sie den letzten Status mehrerer Fenster wiederherstellen möchten

Blessdyb
quelle
2
Schön, aber = stellt den 'letzten Status' nicht wieder her.
Majkinetor
1

Irgendwie hat das ZoomWin-Plugin bei mir überhaupt nicht funktioniert. Ich sehe jetzt, dass es andere Plugins gibt, aber ich habe dies bereits geschrieben und gebe mir genau den Effekt, den ich wollte (mit einer kleinen Eigenheit, die unten aufgeführt ist) :

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>

Verwenden Sie die zugeordnete Taste (in meinem Fall Leader und +), um zwischen maximiertem und vorherigem Layout umzuschalten. Wenn Sie auf derselben Registerkarte zu einem anderen Split wechseln, wird die Maximierung deaktiviert.

Wenn Sie die Registerkarten wechseln, bleibt die Aufteilung maximiert, obwohl sie irgendwie nicht mehr die gesamte Breite abdeckt, wobei die Fenster mit minimierter Breite etwa 4 Spalten oder ähnliches zurückgewinnen. Trotzdem funktioniert es für mich akzeptabel, auch mit dieser kleinen Eigenart.

edit: irgendwie funktioniert es jetzt gut, muss vorher irgendwie durcheinander gebracht haben.

an einer
quelle