2013-09-28 14 views
11

So che :qa chiude tutti i buffer e le finestre ed esce vim. È anche chiaro che potrei usare :q per chiudere una singola finestra/divisione in una data scheda. Ma considera il caso in cui ho tre finestre nella scheda corrente e un gruppo di schede aperte adiacenti. Voglio chiudere le tre finestre nella scheda corrente ma non uscire da vim o dalle altre schede adiacenti.Come faccio a chiudere tutte le finestre solo nella scheda corrente di vim

Come faccio? Ho esaminato il file di aiuto di vim, ma non sembra un'opzione diretta. Immagino sia possibile ottenere tale funzionalità usando vimScript, ma voglio essere sicuro prima di trarre la conclusione che è l'unica opzione.

Se Vim non supporta direttamente e qualcuno è stato abbastanza impressionante di scrivere un plugin per questo, mi piacerebbe saperlo.

+0

Nella terminologia di Vim una "divisione" = una "finestra". Cosa intendi chiudendo "tutte le divisioni nella finestra corrente"? Stai parlando di tabpage? – glts

+0

@glts sì, ho capito subito dopo averlo postato che ho aggiunto la terminologia. Risolvendolo ora. Grazie per segnalarlo. – gkb0986

risposta

17

Vuoi dire che si desidera chiudere la scheda corrente? Quindi c'è il comando :tabclose per quello.

+0

L'ho capito all'incirca alla stessa ora in cui hai risposto. Grazie comunque. – gkb0986

+0

Come posso chiudere l'ultima scheda? –

+0

@ HieuM.Nguyen Attualmente, dovresti conoscere il numero di tabnumber e specificarlo a ': tabclose'. C'è una [patch proposta] (http://article.gmane.org/gmane.editors.vim.devel/46770) per migliorare la gestione degli argomenti '{count}' su alcuni comandi correlati (': close',': argadd ',': argdelete'). Potrebbe volere chiedere all'autore di includere la relativa gestione dell'offset a ': tabclose' in modo che': $ tabclose' funzioni. – jamessan

3

Ho anche scoperto questo comando funziona. La pagina della guida su help tabpage era abbastanza utile.

:tabc 

Come @glts ha sottolineato in un commento, avevo bisogno di ottenere la mia terminologia vim in ordine prima di poter trovare una risposta.

0

Le risposte esistenti che suggeriscono :tabc[lose] siano corrette. Tuttavia, c'è una situazione in cui un'altra risposta può essere utile.

Nel caso in cui si desideri chiudere le finestre nella scheda corrente per ridurre il numero di elementi aperti prima di aprire una nuova scheda e inserire alcuni nuovi file, l'opzione tabclose continua a funzionare; succintamente, si farebbe :tabc|tabe. Tuttavia, i puristi Vim in me non può fare a meno di sottolineare che si potrebbe risparmiare tre combinazioni di tasti digitando :on|ene invece, che è l'abbreviazione di :only | enew, o "chiudere tutte le finestre tranne questo nella scheda corrente, ora, aprire un nuovo file senza nome in questa finestra. " E se si desidera sostituire le finestre correnti con un file con nome, questo idioma è più due sequenze di tasti più brevi rispetto agli altri, per un totale di cinque: :on|e foo.txt versus :tabc|tabe foo.txt.

Così mentre la risposta generalmente corretta alla domanda è il comando :tabclose, ci sono casi in cui :on|e o :on|ene sono più utili.

Problemi correlati