Vim: fecha todas as abas à direita

7

Eu queria saber se existe uma maneira de fechar todas as guias à direita da guia atual. ou seja,

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

e depois, digamos:

: tabcright

-----|active

Obrigado! Pedro

    
por droope 20.02.2013 / 22:08

3 respostas

11

Não existem comandos nativos para isso, mas você pode criar seus próprios facilmente usando o script Vim. Veja um exemplo básico que permite fechar as guias à direita da guia atual e as guias à esquerda:

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>')
    
por 20.02.2013 / 23:31
2

Você pode usar o comando tabdo , que permite executar um comando em uma variedade de guias.

:.+1,$tabdo :q

Você também pode colocar isso no seu vimrc para não precisar memorizar os detalhes desse comando. Você pode fazer algo como:

command -nargs=0 Tabr :.+1,$tabdo :q
    
por 28.06.2017 / 08:48
1

Versão ligeiramente melhorada da resposta davidxk que funciona com várias divisões por guia:

:.+1,$tabdo :tabc
    
por 28.06.2017 / 10:24

Tags