Vim: đóng tất cả các tab ở bên phải


12

Tôi đã tự hỏi nếu có một cách đóng tất cả các tab ở bên phải của tab hiện tại. I E

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

và sau đó, nói:

: tabcright

-----|active

Cảm ơn! Pedro

Câu trả lời:


12

Không có lệnh gốc nào cho điều này tồn tại, nhưng bạn có thể tạo tập lệnh Vim của riêng mình khá dễ dàng bằng cách sử dụng tập lệnh Vim. Dưới đây là một ví dụ cơ bản cho phép bạn đóng các tab ở bên phải của tab hiện tại và các tab ở bên trái:

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

Phiên bản cải tiến của câu trả lời của davidxk hoạt động với nhiều phần tách trên mỗi tab:

:.+1,$tabdo :tabc

4

Bạn có thể sử dụng tabdolệnh cho phép bạn chạy một lệnh trên một loạt các tab.

:.+1,$tabdo :q

Bạn cũng có thể đặt nó trong vimrc của bạn để bạn không phải ghi nhớ các chi tiết của lệnh này. Bạn có thể làm một cái gì đó như:

command -nargs=0 Tabr :.+1,$tabdo :q
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.