SORU
27 HAZİRAN 2011, PAZARTESİ


Vim autocmd tüm dosya türlerini HARİÇ çalıştırın

Yazmadan önce dosyaları sondaki boşlukları kaldırır Vim bir autocmd var. Bu neredeyse 0 zaman istiyorum, ama bunu devre dışı istediğim bir kaç dosya var. Geleneksel bilgelik virgülle ayrılmış bir listede bir autocmd karşı çalıştırmak istediğiniz dosya türlerini listesi, örneğin:

autocmd BufWritePre *.rb, *.js, *.pl

Ama bu durumda olan ağır olurdu.

Bu desen eşleştirme DIŞINDAKİ tüm dosyalara karşı autocmd bir desen eşleşmesi için var mı? Ben docs DEĞİL eşleştirici için eşdeğer bulmak.

CEVAP
27 HAZİRAN 2011, PAZARTESİ


*.rb bir dosya türü değil. Dosya bir desen var. ruby dosyatipi ve .rb uzantısı yok bu dosyalar kümesi bile olabilir. Büyük olasılıkla, sizin autocmd hareket üzerinde olmamalı ve boşluk şeritler hangi dosya türlerini kontrol etmek için her iki çağıran bir fonksiyon.

fun! StripTrailingWhitespace()
    " Don't strip on these filetypes
    if &ft =~ 'ruby\|javascript\|perl'
        return
    endif
    %s/\s\ $//e
endfun

autocmd BufWritePre * call StripTrailingWhitespace()

Evan cevap üzerine bina, tampon, yerel bir değişken için kontrol edin ve striptiz yapıp kullanmaya karar verebilir. Bu da tek bir dosya türü bir tampon şerit istemediğiniz karar verirseniz, normalde şerit olacaktır devre dışı yapmak için izin verecek.

fun! StripTrailingWhitespace()
    " Only strip if the b:noStripeWhitespace variable isn't set
    if exists('b:noStripWhitespace')
        return
    endif
    %s/\s\ $//e
endfun

autocmd BufWritePre * call StripTrailingWhitespace()
autocmd FileType ruby,javascript,perl let b:noStripWhitespace=1

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Glove and Boots

    Glove and Bo

    1 ŞUBAT 2007
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • nigahiga

    nigahiga

    21 Temmuz 2006