Come posso ingrandire una finestra divisa?


110

Invocando :helpin Vim, ho ottenuto la pagina di manuale di aiuto con finestra divisa. Desidero ingrandire la finestra del manuale di aiuto e chiudere l'altra finestra.

Come posso fare questo? Qual è il comando Vim per fare questo?

Risposte:


88

Con : help [topic] apri un argomento che ti interessa.
Ctrl-Wo minimizzerà le altre finestre (lasciando aperta / ingrandita solo la finestra della guida).
(Ctrl-Wo significa tenere premuto Ctrl, premere W, e poi o)


39
o,: solo farà il lavoro.
agilmente

14
Dal file di modifica come posso tornare al manuale di aiuto dopo aver fatto CTRL + W o?
agilmente

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtecc (vedi aiuto per wincmd, switchbufper i dettagli). La cosa divertente è che la mia risposta corretta (IMHO) non era stata ancora data ...
vedi

2
@ldigas: questa è un'opinione (sorprendente). A meno che tu non citi una fonte attendibile, lo terrò come tua preferenza personale, davvero. Di solito non li uso, ma di recente ho scoperto che li sto usando per cose come questa (massimizzare temporaneamente un sidebuffer; fare cose potenti come avere più diff disgiunti fianco a fianco in una singola sessione di vim). Le schede sono anche un miracolo dell'usabilità con gvim --remote. Uso sempre se guioptions=agimperò perché preferisco il rendering delle schede simile a una console.
guarda il

23
questo chiuderà altre finestre e se hai una o più finestre in cui hai apportato modifiche e non salvate, allora questo non funzionerà - inoltre penso che la domanda riguardi la massimizzazione della finestra per lavorare per un breve periodo in quello stato e poi in seguito torna allo stato precedente - chiudendo tutte le finestre dovrai usare il tuo file di sessione o aprire manualmente tutte le altre finestre per tornare indietro
serup

133

Puoi utilizzare Ctrl+WT( che è una capitaleT ) per spostare qualsiasi finestra aperta nella sua scheda.

Come accennato da altri Ctrl+W_/ Ctrl+W|per massimizzare all'interno del layout corrente di schede / finestre (rispettando le impostazioni minime di altezza / larghezza per varie altre finestre).

( Ctrl+W=ridimensiona tutte le finestre alla stessa dimensione, rispettando le impostazioni minime di altezza / larghezza)

Modifica al commento

  1. avvia vim (eg gvim /tmp/test.cpp)
  2. invoca aiuto :help various-motions: apre una finestra divisa
  3. sposta la guida in una scheda separata ingrandita: C-wT
  4. divertiti a leggere il bel manuale :)
  5. riporta la guida nella scheda originale:

    mAZZ<C-w>S`A
    
    • mA: imposta la tacca globale A
    • ZZ: chiude il buffer / scheda della guida
    • C-wS: finestra originale divisa
    • `A: salta al contrassegno salvato A

È possibile evitare di utilizzare un contrassegno per i buffer normali (non di aiuto). Fammi sapere se sei interessato.


4
Dopo aver ottenuto la scheda con CTRL + WT come posso tornare alle finestre divise originali?
agilmente

2
@guru: cambia scheda come sempre (usa Ctrl-PgUp, Ctrl-PgDowno :tabnext, :tabprev). Per chiudere la nuova (per esempio aiuto) scheda, utilizzare ZZ, Ctrl-W, C, :q, :clo, :tabcloseo qualsiasi altro modo di solito vicino le finestre / tabs
sehe

1
No, non era questa la domanda. Supponi di avere due schede, ora non vuoi schede, vuoi che due buffer siano finestre divise. C'è un comando per farlo?
agilmente

Modifica della domanda con procedura generale. ( Vorrei aggiungere che il tono dei vostri commenti potrebbe risultare piuttosto ostile. In lingua scritta, "No, that was not the question"può suonare come un rimprovero. Sono sicuro che non lo intendete male )
vedi

@guru: la risposta è aggiornata. È stato un po 'più complicato del previsto poiché i buffer di aiuto sono speciali (e non è possibile utilizzarli :sbufcome preferirei normalmente). Spero che questo aiuti
vedi

53

È possibile espandere una finestra alla sua dimensione massima utilizzando Ctrl+W_(trattino basso). La dimensione finale della finestra espansa sarà vincolata dal valore winminheightdell'opzione. Quando chiudi la finestra della guida, le finestre precedenti verranno ripristinate alle dimensioni precedenti.


19
Ctrl+W o chiude le altre finestre, quindi non ci sono più. Ecco perché uso Ctrl+W _.
Greg Hewgill

2
Come posso recuperare le due finestre divise originali con il file di editing e con il manuale di aiuto?
agilmente

3
Il Ctrl+W =comando ridimensiona le finestre in modo che abbiano più o meno le stesse dimensioni.
Greg Hewgill

14
Per le divisioni verticali, ti consigliamo di utilizzare Ctrl+W |.
Achal Dave

2
a tutte le anime perse che capitano su questo thread ... per tornare alle viste divise, usa ctrl+w = // questo rende tutte le finestre della stessa dimensione
duggi

19

Preferisco usare le schede per quello. Uso

:tabedit %

per aprire un file ingrandito in una nuova scheda, una volta terminato, torna alla vecchia configurazione con tutte le finestre che utilizzano

:tabclose

Trovo che questa sia la soluzione ideale in quanto funziona insieme :cwal plugin Tagbar. Tratto da: vim.wikia


13

Mi piace usare "M" per massimizzare e "m" per ridurre al minimo.

Non avrà un bell'aspetto poiché ridurrà tutte le altre finestre aperte che si trovano nello stesso buffer, ma l'ho trovato più utile quando si tratta di schede. Quindi, ad esempio, invece di aprire una nuova scheda per quel file, chiuderlo dopo averlo finito o ridurlo a icona.

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

La ragione di nnoremap è che non mi interessa la mappatura ricorsiva, ma dovrebbe funzionare anche solo map.


1
Se usi nnoremap <C-W>M <C-W>\|<C-W>_(senza lo spazio dopo |), il cursore non si sposterà di 1 su ogni ingrandimento.
rsanden

1
Mi piace usare il backslash ( nnoremap <C-W>\ <C-W>\|<C-W>_). Ci si sente naturale con le associazioni di default |, _e =.
rsanden

6

È possibile ottenere la finestra della guida a grandezza naturale senza chiudere / ridimensionare altre finestre utilizzando

tab help {topic}

Questo aprirà la finestra della guida in una nuova scheda, le altre finestre verranno lasciate così com'è (davvero ridimensionate in modo che la tabline possa essere mostrata, ma questa è solo una riga aggiuntiva sopra). Puoi chiudere help come al solito: almeno :bw<CR>e <C-w>clavora anche per me chiudendo una nuova scheda.




2

Per ottenere solo l'aiuto su, quindi chiudere l'altra finestra, fare questo: :helpCTRL-WCTRL-W:close. Allora avrai solo l'aiuto.


1

nel tuo .vimrc, inserisci

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

Quando vuoi massimizzare la finestra corrente, premi semplicemente - in modalità comando. Premere = quando si desidera ripristinare l'ultimo stato di finestre multiple


2
Bello ma = non ripristina l '"ultimo stato".
Majkinetor

1

In qualche modo il plugin ZoomWin non ha funzionato affatto per me, ora vedo che ci sono altri plugin ma l'ho già scritto e mi dà esattamente l'effetto che volevo (con una piccola stranezza dettagliata di seguito) :

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>

Usa il tasto mappato (Leader e + nel mio caso) per alternare tra layout ingrandito / precedente. Se si passa a un'altra divisione nella stessa scheda, la massimizzazione viene disattivata.

Se cambi scheda, la divisione rimane massimizzata, anche se in qualche modo non coprirà più l'intera larghezza intera, con le finestre ridotte al minimo che recuperano circa 4 colonne o qualcosa del genere. Comunque funziona in modo accettabile per me anche con quella piccola stranezza.

modifica: in qualche modo funziona bene ora, deve essersi sbagliato in qualche modo prima.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.