多くの場合、vimを使用してさまざまなXMLファイルを編集する必要があります。vimはサイズが大きく異なります-数百行の構成ファイルから最大2GBの実稼働データファイルまで。巨大なファイルを扱う場合、構文の強調表示を有効にすることはもちろん非常に悪い考えです。したがって、ファイルがしきい値よりも大きい場合は無効にします。
シェルからvimを起動するときに構文が有効になる前にautocommand
コマンドが実行されるように見えるため、これを直接使用して構文の強調表示を無効にすることはできませんでした:
" this autocmd has no effect except for the echo:
autocmd Filetype xml if getfsize(@%) > 1000000 | echom '!' | syntax off | endif
構文の強調表示をグローバルに無効にしてから、xml以外のすべてのファイルタイプに対して再度有効にし、ファイルがしきい値より大きくない場合にファイルタイプxmlに対して有効にすることができるという回避策を見つけました。
syntax off
autocmd Filetype * syntax off
autocmd Filetype * if &ft != 'xml' | syntax enable | endif
autocmd Filetype xml if getfsize(@%) < 1000000 | syntax enable | endif
これは機能しているように見えますが、間違っていると感じ、より多くのファイルタイプと条件でこれを実行したい場合は管理不能になります。さらに、すべてのバッファに影響します。特定の条件下で1つのバッファーで構文の強調表示を無効にする適切な方法は何ですか?