Vim: zamknij wszystkie karty po prawej stronie


12

Zastanawiałem się, czy istnieje sposób zamknięcia wszystkich kart po prawej stronie bieżącej karty. to znaczy

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

a potem powiedz:

: tabcright

-----|active

Dzięki! Pedro

Odpowiedzi:


12

Nie istnieją żadne natywne polecenia do tego, ale możesz dość łatwo stworzyć własne, używając skryptu Vima. Oto podstawowy przykład, który pozwala zamykać karty po prawej stronie bieżącej karty oraz karty po lewej:

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

Nieznacznie ulepszona wersja odpowiedzi davidxk, która działa z wieloma podziałami na kartę:

:.+1,$tabdo :tabc

4

Możesz użyć tabdopolecenia, które pozwala uruchomić polecenie na wielu kartach.

:.+1,$tabdo :q

Możesz również umieścić to w swoim vimrc, abyś nie musiał zapamiętywać szczegółów tego polecenia. Możesz zrobić coś takiego:

command -nargs=0 Tabr :.+1,$tabdo :q
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.