指定されたファイルタイプの永続的な:set構文?


103

Twigを使用するSymfony2プロジェクトで作業していますmyfile.html.twig。ファイルタイプはです。Vimは構文の強調表示を自動的に検出しないため、何も適用されません。:set syntax=HTMLファイルを開いた後でも使用できますが、ファイル間をジャンプするときにこれが面倒です。

vimで特定のファイルタイプの構文の強調表示を永続的に設定する方法はありますか?

回答:


114

あなたはautocmdそれを達成するために使用することができます、すなわち:

augroup twig_ft
  au!
  autocmd BufNewFile,BufRead *.html.twig   set syntax=html
augroup END

うまくいくはずです。


4
友人も私にこれを指摘しました。:ファイルタイプを設定au BufRead,BufNewFile *.html.twig set filetype=twig:構文を設定しますau BufRead,BufNewFile *.html.twig set syntax=HTML
Bendihossan

27
この行を~/.vim/ftdetect/html.twig.vimファイルに配置することをお勧めします(作成する必要があります)。これは、このようなオートコマンドに適した場所です。
xaizek 2012

@xaizek私はこれが推奨されていることを理解していますが、~/.vimrc代わりに入れても私にとってうまくいかない理由があります~/.vim/ftdetect/か?
Haralan Dobrev、2014

2
@HaralanDobrev、おそらくこの行の後に定義された別の自動コマンドによって上書きされます。:autocmd BufNewFile,BufRead *.html.twigVim内で実行して、登録されているすべての自動コマンドを確認します(別のイベントでのみBufNewFile、およびのみのみを試してくださいBufRead)。の出力も確認してください:verbose set syntax?
xaizek 2014年

1
この解決策を見つけるのがいかに簡単であったかで、vim wikiが存在しないことを願いました
Jared Beach

59

次の文章のいずれかをに追加します.vimrc

" Set the filetype based on the file's extension, overriding any
" 'filetype' that has already been set
au BufRead,BufNewFile *.html.twig set filetype=html

または

" Set the filetype based on the file's extension, but only if
" 'filetype' has not already been set
au BufRead,BufNewFile *.html.twig setfiletype html

6
これは、一般に認められている答えよりも一般的な答えです。vimがファイルのタイプを検出できない場合(および構文の強調表示を自動的に提供する場合)、ファイルの構文だけでなく、ファイルタイプを設定することをお勧めします。
mrfred 2017年

1
setfiletypeである必要がありset filetype、私はそれを動作させることができる方法だと少なくとも
dau_sama

1
@dau_sama setfiletype=htmlは有効な構文ではありません。答えを修正しました。回答で述べたように、さまざまなことに注意setfiletype htmlset filetype=htmlください。
bdesham


2

私はこれが直接質問に答えないことを知っています、しかしこれは質問の意図に答えます、それはTwig / Symfony 2で構文強調表示を機能させることです

以下を提供するhttps://github.com/beyondwords/vim-twig(私のものではありません)を確認することをお勧めします。

  • * .html.twigの構文強調表示ファイル、
  • 同じファイルタイプの検出、および
  • * .html.twigファイルの編集時に必要に応じてさまざまな設定を変更できるファイルタイププラグイン

これが役に立てば幸い

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.