2016-03-30 22 views
2

Vim ( ve ) dosyalarında .coffee dosyalarındaki boşlukları vurgulamaya çalışıyorum. Vim: Yeni satırlarda değil, parantezler arasındaki boşlukları eşleştirin

böylece (foo = true, bar = false) yöntem foo öncesi ve false sonra boşluk vurgulamak istiyorum.

highlight BraceWhiteSpace ctermbg=red ctermfg=white guibg=#592929 
fun! UpdateMatch()            
    if &ft !~ '^.*\.coffee$'          
     match BraceWhiteSpace /([ \t]\+\|[ \t]\+)/    
    else               
     match NONE            
    endif               
endfun               
autocmd BufEnter,BufWinEnter * call UpdateMatch()     

kritik bölümü burada bu işleri

match BraceWhiteSpace /([ \t]\+\|[ \t]\+)/ 

, aynı zamanda yeni bir satırda boşluk lider ile bir ayraç maçları hariç, bilmiyorum hangi: Burada

Elimde ne var istiyorum:

bunu kontrol etmek için bir örnek olarak geriye dönük olan bir düzenli ifade yazmak için mücadele ediyorum
) 

st de değil çizgi sanatı.

Herkes yardımcı olabilir mi? Hiçbir başlangıç ​​ait olup olmadığını

[ \t]\+)\(^[ \t]\+)\)\@<! 

\(^[ \t]\+)\)\@<! sadece çek:

+0

Geriye İlerleme kontrol etmek '\ _^\ @

+0

Öyleyse tam desenim \/([\ t] \ + \ |^\ @ thelastshadow

+1

Daha sonra, biraz daha uzun yapabilirsiniz: '[\ t] \ +) \ (^ [\ t] \ +) \) \ @

cevap

1

sonra )yerleştirilir -line, ) ile 1 + boşlukları eşleştikten sonra, 0 + 1 boşlukları izledi ve ) ile takip etti.

tam ifadesi: sadece olması gerektiği `^ \ @<` (ya da desen başında değilse, kullanımı hattının başlangıç ​​değilse

([ \t]\+\|[ \t]\+)\(^[ \t]\+)\)\@<! 
0

bu hat denemeye: Bir olan ileriye dönük bu çözümü kullanabilirsiniz

match BraceWhiteSpace /([ \t]\+\|.\+\zs[ \t]\+)/