Vim: chiude tutte le schede a destra


12

Mi chiedevo se esiste un modo per chiudere tutte le schede a destra della scheda corrente. vale a dire

-----|active|-----|-----|------|

e dopo, dì:

: tabcright

-----|active

Grazie! Pedro

Risposte:


12

Non esistono comandi nativi per questo, ma puoi crearne uno abbastanza facilmente usando lo script Vim. Ecco un esempio di base che ti consente di chiudere le schede a destra della scheda corrente e le schede a sinistra:

function! TabCloseRight(bang)
    let cur=tabpagenr()
    while cur < tabpagenr('$')
        exe 'tabclose' . a:bang . ' ' . (cur + 1)
    endwhile
endfunction

function! TabCloseLeft(bang)
    while tabpagenr() > 1
        exe 'tabclose' . a:bang . ' 1'
    endwhile
endfunction

command! -bang Tabcloseright call TabCloseRight('<bang>')
command! -bang Tabcloseleft call TabCloseLeft('<bang>')

5

Versione leggermente migliorata della risposta di davidxk che funziona con più suddivisioni per scheda:

:.+1,$tabdo :tabc

4

È possibile utilizzare il tabdocomando che consente di eseguire un comando su una serie di schede.

:.+1,$tabdo :q

Potresti anche metterlo nel tuo vimrc in modo da non dover memorizzare i dettagli di questo comando. Puoi fare qualcosa del tipo:

command -nargs=0 Tabr :.+1,$tabdo :q
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.