8

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

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

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

:tabcright

-----|active

Спасибо! Pedro

3 ответа3

11

Никаких собственных команд для этого не существует, но вы можете довольно легко создать свои собственные, используя скрипт 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>')
3

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

:.+1,$tabdo :q

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

command -nargs=0 Tabr :.+1,$tabdo :q
1

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

:.+1,$tabdo :tabc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .