Vim: закройте все вкладки справа

12

Мне было интересно, если есть способ закрыть все вкладки справа от текущей вкладки. т.е.

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

а после сказать:

: tabcright

-----|active

Спасибо! Pedro

droope
источник

Ответы:

12

Никаких собственных команд для этого не существует, но вы можете довольно легко создать свои собственные, используя скрипт Vim. Вот базовый пример, который позволяет закрыть вкладки справа от текущей вкладки и вкладки слева:

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>')
Heptite
источник
5

Немного улучшенная версия ответа davidxk, которая работает с несколькими разделениями на вкладке:

:.+1,$tabdo :tabc
Валк
источник
4

Вы можете использовать tabdoкоманду, которая позволяет вам запустить команду на нескольких вкладках.

:.+1,$tabdo :q

Вы также можете поместить это в свой vimrc, чтобы вам не приходилось запоминать детали этой команды. Вы можете сделать что-то вроде:

command -nargs=0 Tabr :.+1,$tabdo :q
davidxk
источник