2009-09-07 4 views
6

때때로 Vim은 탭 형식의 파일을 읽는 것이 가장 합리적인 형식은 탭 폭이 균일하지 않은 것을 의미합니다. Vim에서 가변 폭 탭 간격 구성

5, 30, 50, 60, 70,

(80)가 어떻게 빔이 작업을 수행 할 수 있습니다

: 즉, 나는 위치에 탭 정지 원하는?

+0

vim에서 오랜 시간 동안 쫓겨 난 가변 탭 스톱이라는 기능이 있습니다. 그것은 지난 2 주간에 마스터 브랜치로 재 통합되었습니다. 나는 약간의 테스트를 거쳤습니다 - 약간의 산술 에러를 피하기 위해 그것을 패치해야했지만, 이제는 꽤 안정적으로 보입니다. 너는 곧 운이 좋을거야. 이 패치 – Cascabel

답변

1

현재 없음. 공식 빌드가 아닙니다.

그러나 당신이 당신 편에 약간의 노력을 기꺼이 투자 할 생각이라면, 나는 그런 것을위한 패치가 있음을 기억합니다. vim의 패치 페이지를 확인하십시오.

+0

? https://groups.google.com/forum/#!topic/vim_dev/eNOQO06iRZQ –

4

실제로 탭 스톱을 변경하지 않아도되고 정확한 공백 문자 수만 삽입하면 빠져 나올 수 있다면 스크립트로 작성하는 것이 좋습니다.

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

이것은 훌륭한 기능입니다.하지만 필자가 필요로하는 기존 파일을 다시 포맷하지는 않겠지 만 자신의 파일을 파리. – Magnus

관련 문제