Özel vurgulama kuralları nereye aittir?


11

Bazen kendi tercihlerimle renkleri ve stilleri vurgulayan varsayılan sözdizimini geçersiz kılmak istiyorum.

Bunu yapmanın en uygun yolunun kendi renk şemamı oluşturmak olduğunu hayal ediyorum. Ancak birkaç sorum var.

  1. Belirli bir dilde belirli bir sözdizimi grubu için vurgu yapmak istersem, bu renk şememe mi ait, yoksa yerleştirmek daha mı iyi olur after/syntax/[filetype].vim?

    highlight jsAssignExpIdent cterm=bold gui=bold
    

    Üzerinde çalıştığım dili yükleyeceklerinden, belirsiz bir dile özgü kurallar colorscheme'ye yerleştirmek biraz garip görünüyor, ancak sözdizimi dosyasına vurgulama kuralları yerleştirmek daha da kötü görünüyor.

  2. Bazen, içinde belirli bir dil için yeni sözdizimi kuralları oluşturuyorum after/syntax/[filetype].vim. Diğer kullanıcıların bu uzantıları kullanmak istemesi durumunda, ortak varsayılan vurgulama gruplarına bağlantı veren varsayılan vurgulama kurallarını sağlamak benim için uygun olur mu? Başka bir kullanıcı bu vurgu rengini geçersiz kılmak istiyorsa, bunu nasıl yapmalıdır?

    ::::: after/syntax/asm.vim :::::
    
    syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/
    highlight default link asmHexNumber Number
    

Yanıtlar:


9

İlk soru

Vurgulama tanımları renk şemanıza aittir. Dilleri ne olursa olsun, her arabellek için yüklü olmaları hiç sorun olmamalı.

Colorscheme'inizi düzenlemek istemiyorsanız, bu vurgulama tanımlarını şuraya koyabilirsiniz plugin/myhighlights.vim:

function! MyHighlights()
    highlight ...
    highlight ...
endfunction

augroup MyHighlights
    autocmd!
    autocmd ColorScheme * call MyHighlights()
augroup END

İkinci soru

Örneğiniz tam olarak nasıl yapmanız gerektiği ve her sözdizimi betiğinin nasıl yaptığıdır. Bu yöntem, eklenti geliştiricisinin kullanıcı renklerini belirli renkleri zorlamadan aklı başında varsayılanı tanımlamasını sağlar.


Onay için teşekkürler. Ancak highlight link ...sözdizim dosyasına komutları koyarsam , bu dosya türüne sahip bir dosya her yüklendiğinde bunların colorcheme'deki ayarların üzerine yazacağından endişe ediyorum . Belki de sadecehighlight link ... bu isim için vurgulama kuralı olmadığını kontrol ettikten sonra mı yapmalıyım ?
joeytwiddle

Endişelenmem gerek. Vim dokümanları: {Gruptan} için vurgulama ayarları zaten varsa, '!' verilmiş. Kaynaklı bir dosyadaki ": bağlantıyı vurgula" komutu için hata mesajı almazsınız. Bu, zaten ayarları olan grupların bağlantılarını atlamak için kullanılabilir.
joeytwiddle

Ancak kendi renklerini değiştiren insanlar için, highlight linkdaha sonra highlight linkbir sözdizimi dosyasında bir a ile renk şemasının üzerine yazılabilir . Bundan kaçınmak için, bağlantı yerine gerçek argümanlar (ctermbg, guifg, ...) kullanılabilir.
joeytwiddle

Kullanıcı, belirli bir vurgulama grubu için hangi renklerin kullanıldığına dair son sözü bilmelidir. Bu amaçla, renk kimyasallarında dile özgü vurgu tanımlarını görmek nadir değildir. Yalnızca highlight link ...sözdizimi komut dosyasında kullanmalı ve kullanıcılarınızın isterse onu geçersiz kılmalarına izin vermelisiniz .
romainl

Benim endişem, eğer kullanıcılar highlight link ...kendi renk şemasında kullanırlarsa , sözdizimi dosyasının daha sonra kendi ile sıfırlanabileceğiydi highlight link .... Şimdi iyi sözdizimi dosyalarını kullanarak bunu önlemek olduğunu görüyorum highlight default link .... Bu muhtemelen sorumdaki asmHexNumberkuralın düzeltilmesi olmalıdır .
joeytwiddle
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.