Vim: fermez tous les onglets à droite


12

Je me demandais s'il y avait un moyen de fermer tous les onglets à droite de l'onglet actuel. c'est à dire

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

et après, dites:

: tabcright

-----|active

Merci! Pedro

Réponses:


12

Il n'existe aucune commande native pour cela, mais vous pouvez créer la vôtre assez facilement à l'aide du script Vim. Voici un exemple de base qui vous permet de fermer les onglets à droite de l'onglet actuel et les onglets à gauche:

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

Version légèrement améliorée de la réponse de davidxk qui fonctionne avec plusieurs divisions par onglet:

:.+1,$tabdo :tabc

4

Vous pouvez utiliser la tabdocommande qui vous permet d'exécuter une commande sur une gamme d'onglets.

:.+1,$tabdo :q

Vous pouvez également mettre cela dans votre vimrc afin que vous n'ayez pas à mémoriser les détails de cette commande. Vous pouvez faire quelque chose comme:

command -nargs=0 Tabr :.+1,$tabdo :q
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.