Vimはファイルの内容に基づいてautocmd
質問
私は「USEPACKAGE {sagemath} \」.texファイルは、コマンドが含まれているときを検出するためにVimを設定しようとすると、それに応じてコマンドを実行しています。私は
を得ています:au BufReadPost,BufWritePost *.tex TTarget sagepdf
が、それは私が欲しいものではありませんこれは、すべての.texファイルのために発生します。
解決
htmlのタイプを区別する方法についての私のfiletype.vimで
Theresの例。あなたは簡単にあなたのロジックに合わせて変更することができます。注のgetline(N)=〜行
" HTML (.shtml and .stm for server side)
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call s:FThtml()
" Distinguish between HTML, XHTML and Django
fun! s:FThtml()
let n = 1
while n < 10 && n < line("$")
if getline(n) =~ '\<DTD\s\+XHTML\s'
setf xhtml
return
endif
if getline(n) =~ '{%\s*\(extends\|block\)\>'
setf html.django_template
" setf htmldjango
return
endif
let n = n + 1
endwhile
setf html
endfun
他のヒント
まず、あなたはA モードラインの使用を検討してください。
:あなたはモードラインであなたが欲しいものを得ることができない場合は、、あなたはこのように、autocmd
で独自の機能を使用することができます
function! MyFunction()
...
endfunction
autocmd BufReadPost,BufWritePost *.tex call MyFunction()
、あなたはおそらく、特定のパターンと一致するかどうかをチェックし、その後、あなたが好きな実行という関数を記述することができます。
所属していません StackOverflow