回答:
Vim FAQ 26.8で説明されている~/.vim/filetype.vim
ように、を作成することをお勧めします。:help 43.2
上記のアプローチのより良い代替方法は、〜/ .vimディレクトリ(または 'runtimepath'オプションで指定されたディレクトリの1つ)にfiletype.vimファイルを作成し、次の行を追加することです。
" my filetype file if exists("did_load_filetypes") finish endif augroup filetypedetect au! BufRead,BufNewFile *.x setfiletype c augroup END
編集:
did_load_filetypes
あなたに何か問題が発生することはありません。変更後にVimを再起動するだけで済みます。
このファイルの複数の不必要なロードを回避するために必要であり、ベースファイル($ VIMRUNTIME / filetype.vim)から継承されます。
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Jun 12
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
finish
endif
let did_load_filetypes = 1
詳細については、を確認してください:help new-filetype
。
au!
、すなわち、グループ内の文au! BufRead,BufNewFile *.py setfiletype python
と下の行にau! BufRead,BufNewFile *.tpp setfiletype cpp
。ただし、実際に機能するのは2番目の方法だけです。.py
ファイルを編集しても、ファイルタイプはに設定されませんpython
。私はまさにvim-guruではないので、おそらく何かが欠けています。
au BufNewFile,BufRead *.py,*.pyw setf python
、の行がすでに含まれていることがわかるので、最初の行は無関係です。問題はおそらく他の場所にあります。
"Editing .py files does not set the file type to python"
- :set ft
その場合の出力は何ですか?Pythonでない場合は、Vim-FAQ 2.5の
一つも持っている可能性があり:au BufRead,BufNewFile *.tpp setlocal filetype=cpp
その中で.vimrc
、このようなファイルで開いた時という.tpp
拡張子を、ファイルタイプが設定されているC ++
BufRead,BufNewFile
代わりに使用する理由を詳しく説明してもらえますBufEnter
か?
BufRead,BufNewFile
先を好みます。どこBufReadPostは代名詞であるBufRead。さらに、以前はこれが必要だとは思わなかったので、回答でも省略しました。(私はこれを完全に間違っていると解釈したかもしれません、さらなる議論を聞いてうれしいです)BufEnter
:help BufEnter
:
setlocal
if
声明?そのままにしておくと、autocmdは実行されません。