Vim: tutup semua tab di sebelah kanan


12

Saya bertanya-tanya apakah ada cara untuk menutup semua tab di sebelah kanan tab saat ini. yaitu

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

dan setelahnya, katakan:

: tabcright

-----|active

Terima kasih! Pedro

Jawaban:


12

Tidak ada perintah asli untuk ini, tetapi Anda dapat membuat sendiri dengan cukup mudah menggunakan skrip Vim. Berikut adalah contoh dasar yang memungkinkan Anda menutup tab di sebelah kanan tab saat ini, dan tab di sebelah kiri:

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

Versi sedikit lebih baik dari jawaban davidxk yang bekerja dengan banyak pemisahan per tab:

:.+1,$tabdo :tabc

4

Anda dapat menggunakan tabdoperintah yang memungkinkan Anda untuk menjalankan perintah pada berbagai tab.

:.+1,$tabdo :q

Anda juga bisa meletakkan ini di vimrc Anda sehingga Anda tidak perlu mengingat detail dari perintah ini. Anda dapat melakukan sesuatu seperti:

command -nargs=0 Tabr :.+1,$tabdo :q
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.