2009-09-07 32 views
6

Đôi khi tôi muốn Vim đọc các tệp được định dạng tab, trong đó định dạng hợp lý nhất ngụ ý độ rộng tab không đồng nhất. Nói cách khác, tôi muốn có một điểm dừng tab tại các vị trí:Đặt cấu hình khoảng cách tab có độ rộng biến đổi trong Vim

5, 30, 50, 60, 70, 80

Làm thế nào tôi có thể làm điều này trong Vim?

+0

Có một tính năng được gọi là tabstops biến đã được khởi động trong một thời gian dài trong vim. Nó vừa được tái hòa nhập vào nhánh chính trong vài ngày qua. Tôi đã thử nghiệm nó một chút - đã phải vá nó để tránh một vài lỗi số học, nhưng bây giờ nó xuất hiện khá ổn định. Bạn có thể may mắn sớm thôi. – Cascabel

Trả lời

1

Hiện tại không có. Không có bất kỳ bản dựng chính thức nào.

Tuy nhiên, nếu bạn sẵn sàng đầu tư một chút nỗ lực vào bên cạnh bạn, tôi nhớ có một bản vá cho một thứ như thế. Kiểm tra trang vá lỗi của vim.

+0

bản vá này? https://groups.google.com/forum/#!topic/vim_dev/eNOQO06iRZQ –

4

Nếu bạn không thực sự cần thay đổi các tab và có thể lấy đi chỉ bằng cách chèn đúng số lượng khoảng trắng, tôi khuyên bạn nên viết mã. Đây là một phiên bản nhanh và bẩn có thể làm những gì bạn muốn:

let s:tabstops = [0, 5, 30, 50, 60, 70, 80] 
fun! Find_next(pos) 
    if a:pos > min(s:tabstops) && a:pos < max(s:tabstops) 
    let my_count = 0 
    while my_count < len(s:tabstops) - 1 
     if a:pos > get(s:tabstops, my_count) && a:pos < get(s:tabstops, my_count+1) 
     return get(s:tabstops, my_count+1) 
     endif 
     let my_count = my_count + 1 
    endwhile 
    return -1 
    endif 
    return -1 
endfun 
fun! Tabbing() 
    let pos = col('.') 
    let next_stop = Find_next(pos) 
    let the_command = "normal i" 
    let my_count = 0 
    while my_count < next_stop - pos 
    let the_command = the_command . " " 
    let my_count = my_count + 1 
    endwhile 
    let the_command = the_command . "" 
    execute the_command 
endfun 
imap <TAB> j<ESC>:call Tabbing()<CR>lxi 
+0

Đây là một chức năng tuyệt vời, mặc dù điều này sẽ không định dạng lại một tệp hiện có, đó là những gì tôi cần, nhưng hỗ trợ định dạng tệp của riêng tôi trên bay. – Magnus

Các vấn đề liên quan