2010-11-12 23 views

cevap

32

:match komutunu kullanabilirsiniz.

:match Todo /word1/ 

komutunun ilk parametre vurgulamak grubudur (tüm gruplar :highlight görmek için). İkinci parametre bir arama modelidir.

Bunları herhangi bir dosyaya koyabilirsiniz ve :source üzerinden yükleyin.

:match Todo /word1/ 
:2match Error /word2/ 
:3match Title /word3/ 
+2

Ben daha eklemek dosya için bir satırdan daha fazlası vurgulanmış olan son satırdır – zpon

+5

Figür çıktısı,: eşleştir VisualNOS/word1 \ | word2 \ | word3/ – zpon

+8

': match', ': 2match' ve': 3match' komutlarına sahipsiniz. Bunu yapmak için, ve böylece üç kalıpları saklayabilirsiniz. Ama ayrıca şunları kullanabilirsiniz: matchadd() '(': help matchadd() '). – Benoit

13

bunun için size syn keyword kullanmak öneriyoruz:

:match Todo /word1\|word2\|word3/ 

Eğer farklı şekilde vurgulamak istiyorsanız:

bir başka yolu (thx @zpon) düzenli ifade değiştirmektir. michael.kebe ve syn match tarafından önerildiği gibi :match gibi başka seçenekler de vardır, ancak bunların hepsi düzenli ifade eşleşmelerine dayanmaktadır. Bunun dezavantajı, eşleştirmek istediğiniz kelimelerin sayısı arttıkça Vim hızının azalmasıdır. Anahtar kelime eşleşmeleri, çok daha hızlıdır. Ayrıca, bir satırdaki birden çok anahtar kelimeyi kolayca tanımlayabilirsiniz (bir satırda yaklaşık 512 karakterlik bir sınır olsa da, bellek doğru şekilde bana hizmet veriyorsa). Olması için

syn keyword Todo word1 word2 word3 
syn keyword Todo word4 
syn keyword Todo word5 

herhangi dosyada şu satırları koyun ve :source onu veya ~/.vim/after/syntax/c.vim nehre atarken source d otomatik olarak tüm C dosyaları (ilgilendiğiniz dosyası türleri için sözdizimi dosyasını almak) için.

michael.kebe 'un yanıtında olduğu gibi, ilk parametre (bu durumda Todo) vurgulama grubudur. Eğer isterseniz kendi grubunuzu makyaj ve vurgulama tanımlayabilirsiniz:

syn keyword MyHighlightGroup word6 word7 
" Then EITHER (define your own colour scheme): 
hi MyGroupName guifg=Blue ctermfg=Blue term=bold 
" OR (make the colour scheme match an existing one): 
hi link MyGroupName Todo 
+0

Sözdizimi anahtar sözcük yönteminde herhangi bir kısıtlama var mı? Tex dosyamdan birinde herhangi bir etkisi yok gibi görünüyor, ancak diğer tüm dosyalarda – zpon

+0

Bildiğim tek kısıtlamalar, sözcükteki karakterlerin hepsinin anahtar kelime karakterleri olması (yani '' 'veya diğer semboller) olması ve vim özel sözdizimi ile ilgili seçenek anahtar kelimelerinden ('içerir 'vb.) birini kullanamazsınız. Benim için kullanacağım eşek MyHighlightGroup/\ /'ya da her neyse. – DrAl

+0

Bu garip, sadece "o" ve "orada" gibi normal kelimeler kullandım – zpon

-1

: maç Todo/\ < \ (kelime1 \ | kelime2 \ | word3 \) \>/