Vim 7.4 ile .vimrc'de vurgulama komutlarının hemen etkili olmasını nasıl sağlayabilirim?


9

Dosyamda birkaç highlightkomut var .vimrc. Vim 7.3'te, bunlar Vim başladıktan hemen sonra yürürlüğe girdi. Vim 7.4 sürümüne güncelledikten sonra artık durum böyle değil. Vim başlangıçta varsayılan vurgulamasını kullanır. Yürüterek .vimrcikinci kez yüklediğimde source ~/.vimrc, vurgulamak istediğim gibi çalışır.

Aşağıdaki adımları kullanarak bu sorunu yeniden üretebilmeniz gerekir:

  1. .vimrcDosyanızın bir kopyasını oluşturun .

  2. ~/.vimrcYalnızca satırı içeren bir dosyayla değiştirin highlight Type ctermfg=28 cterm=bold.

  3. vim dummy.c256 renkli terminalde çalıştırın (örneğin GNOME Terminali).

  4. Tip inttampon içine. intDüzenli yazı görünmelidir ve ne istiyorum olmadığı, açık yeşil renkli olması.

  5. Enter :source ~/.vimrc. Şimdi intkalın yazı tipinde görünmeli ve koyu yeşil renkte olmalıdır.

Vim renklerini kontrol etme / yapılandırma makalesine göre , sadece highlightkomutları koymak iyi olmalıdır .vimrc. Makale syntax enable, highlightkomutlardan sonra koymanız gerektiğini söylüyor , ancak bu herhangi bir fark yaratmadı.

Benim ilk düzeltme her başa ekleyerek oldu highlightkomutunu .vimrcile autocmd VimEnter *. Bu, bazı dosya türleri için işe yaradı, ancak diğerleri için işe yaramadı (C dosyaları bir örnektir).

Bu davranışın nedeni nedir? highlightVim başlatıldığında, tüm Vim oturumu boyunca tüm arabellekler için geçerli olacak şekilde komutları nasıl çalıştırabilirim?



Evet, set compatiblebaşında eklerken .vimrcsözdizimi vurgulaması beklendiği gibi çalışır. Yani bu gerçekten eylemdeki bir hata gibi görünüyor.
Wolfgang Jeltsch

Hata raporunda geçici bir çözüm olarak önerilen highlightkomutlardan önce geldim autocmd ColorScheme *. O hala çalışmıyor. ☹
Wolfgang Jeltsch

Şimdi görünüşe göre bu hata etrafında çalışan kendi renk şemasını yazıyorum.
Wolfgang Jeltsch

Christian, yorumunu cevap olarak yazabilir misin? Sonuçta, bu benim sorunum için doğru cevap. Ya da hataları ortaya çıkaran sorularla başa çıkmak için başka bir yaklaşım var mı?
Wolfgang Jeltsch

Yanıtlar:


5

Bu kesin bir cevap değil ve sorununuz 542 numaralı sorun gibi geliyor . Görünüşe göre, bu hi ...ifadeleri doğrudan .vimrc'nize yazmak yerine, kendi temel renkler planınızı yazarak çalışabilirsiniz .


Bence bu Vim sorunu yüzünden; yanıtınız gerçekten benim sorunum için doğru cevap gibi görünüyor.
Wolfgang Jeltsch

3

Aslında özel vurgunuzu vimrc'nize değil, gümrük sözdizimi dosyalarına koymalısınız.

Bu dosyalar , beklenen dosya türünün ~/.vim/after/syntax/filetype.vimbulunduğu yerde bulunmalıdır filetype. Çoğunlukla bir sözdizimi dosyasından memnunsanız, ancak birkaç komut eklemek istiyorsanız, aşağıdaki adımları uygulayabilirsiniz (buradan alınmıştır :h mysyntaxfile-add):

  1. Orada "after / syntax" adlı bir dizin oluşturun. Unix için:

    mkdir ~/.vim/after
    mkdir ~/.vim/after/syntax
    
  2. Kullanmak istediğiniz komutları içeren bir Vim betiği yazın. Örneğin, C sözdiziminin renklerini değiştirmek için:

    highlight cComment ctermfg=Green guifg=Green
    
  3. Bu dosyayı "after / syntax" dizinine yazın. ".Vim" eklenmiş sözdiziminin adını kullanın. C sözdizimimiz için:

    :w ~/.vim/after/syntax/c.vim
    

Bu kadar. Bir C dosyasını bir sonraki düzenlemede Yorum rengi farklı olacaktır. Vim'i yeniden başlatmanız bile gerekmez.

:h mysyntaxfilekendi sözdizimi dosyalarınızı düzeltme hakkında bilgi almak için iyi bir yerdir. Ayrıca Vimscript Bu konuda çeşitli bölümler olarak Zor Yolu öğrenin .


3
Tüm dosya türleri için vurgulamayı değiştirmek istersem ne olur? Örneğin, dosya türü ne olursa olsun yorumların renginin koyu mavi olmasını istiyorum.
Wolfgang Jeltsch

Önerdiğiniz yaklaşımı az çok denedim. Bir dosya ekledim .vimrc/highlighting.vim, bir dizin oluşturdum .vimrc/syntax/afterve * filetype * formunun bu dizine .vimişaret eden birkaç sembolik bağlantısı ekledim .vimrc/highlighting.vim. Sözdizimi vurgulama hala çalışmıyor.
Wolfgang Jeltsch

@ WolfgangJeltsch Yup yazı ve doktor dizinin olmaması gerektiğini ~/.vim/after/syntaxsöylüyor~/.vimrc
statox

Bu doğru. Ancak, bu benim yorumda sadece bir yazım hatası oldu. Aslında, dizinde çalıştım .vimve muhtemelen bu hata 542 nedeniyle sözdizimi vurgulama işe yaramadı.
Wolfgang Jeltsch

Hayır! çalışmıyor.
Yar

1

Değer için MacVim (8.1.950 (155)) ile bu sorunu yaşadım. Vurgu ifadesini colorscheme.vimrc içine yerleştirdikten sonra benim için düzeltti. Örneğin:

highlight SpellCap guisp=Yellow
...
colorscheme evening

->

colorscheme evening
...
highlight SpellCap guisp=Yellow

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.