1

プログラムで一般的に使用される特定の関数を強調表示して、JS 構文の強調表示を拡張したいと思います。すべてのプラグインを整理するためにjanusを使用しています。現在、そこにファイルがありvim-chino、そこにsyntaxフォルダーとフォルダーがありftdetectます。両方にchino.vimファイルがあります。これは私のsyntax/chino.vimファイルです:

if !exists("main_syntax")
  if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif
let main_syntax = 'javascript'
endif


syn match chinoKeywords "ChinoView"
hi def link chinoKeywords Function


let b:current_syntax = "javascript"
if main_syntax == 'javascript'
  unlet main_syntax
endif

そして私のftdetect/chino.vim中には:

function! s:DetectJS()
    if getline(1) =~# '^#!.*/bin/env\s\+node\>'
        setfiletype javascript
    endif
endfunction
autocmd BufNewFile,BufRead * call s:DetectJS()

ChinoViewjavascriptファイルで強調表示したいと思います。JS の構文の強調表示が上書きされているか、これが読み取られていないように感じます。

編集:何かが起こっている場所を推測しなければならなかった場合、それを見るb:current_syntaxとすでに構文があるため、終了します。

4

1 に答える 1

6

構文ftplugin/chino.vimを に設定しますがjavascript、定義した追加の強調表示は新しいチノ構文用です。それは合いません。

すべてのJavascript で余分なキーワードをハイライトしたい場合は、デフォルトの Vim 検出を実行して、それらの行を に追加しafter/syntax/javascript.vimます。

syn match chinoKeywords "ChinoView"
hi def link chinoKeywords Function

ただし、ファイルのシバン行に応じて別のチノファイルタイプを定義する場合は、 を定義し、デフォルトの JavaScript 構文を(初期チェックの後、 を設定する前に)に含める必要があり:setfiletype chinoます。ftplugin/chino.vimsyntax/chino.vimb:current_syntax

runtime! syntax/javascript.vim syntax/javascript/*.vim
于 2013-04-26T06:39:27.450 に答える