特定の言語のvim構文ハイライトファイルを作成しています。一部のキーワードでは、特定の文字は無視されます(,
および-
および_
)。言い換えれば、これらはまったく同じです:構文マッチングで特定の文字を無視する
foo
f_oo
f-o,o
は、例えばを使用しているとき、私はこれらの文字を無視することができる方法はあります。 syn match
?
特定の言語のvim構文ハイライトファイルを作成しています。一部のキーワードでは、特定の文字は無視されます(,
および-
および_
)。言い換えれば、これらはまったく同じです:構文マッチングで特定の文字を無視する
foo
f_oo
f-o,o
は、例えばを使用しているとき、私はこれらの文字を無視することができる方法はあります。 syn match
?
これには特別なオプションはありません。あなたは、オプションで、各charの間の特定の文字を許可するパターンを作成しました。 foo
有する例:を有する
f[,_-]*o[,_-]*o
注-
ことが[]
ブロック(:h /[]
参照)の端部に配置されます。それは書くこと気難しいあるとして
、あなたはあなたのためにそれを作るための関数を作成することができます。この後
func! CreatePattern(word)
let l:s = ''
let l:first = 1
for i in range(len(a:word))
if !l:first
let l:s .= '[,_-]*'
else
let l:first = 0
endif
let l:s .= a:word[i]
endfor
return l:s
endf
を、我々は持っている:
:echo CreatePattern('bar')
b[,_-]*a[,_-]*r
次に、あなたが:syn match
を使用することができます:execute
のヘルプ:
:exe 'syn match MyHighlightGroup /'.CreatePattern('foo').'/'
またはmatchadd()
を使用して:
:call matchadd('MyHighlightGroup', CreatePattern('foo'))
上記の関数は単純な単語でのみ機能しますが、特殊なパターンの文字を含むパターンはすべて破棄されることに注意してください。あなたはそのようなニーズのためにより良い機能を書かなければならないかもしれません。
ありがとうございました - カスタム関数を使用すると、ここで最善の解決策と思われます。 – afl