環境
私は.vimrc
自動的に次のものを調達しています:
autocmd! BufWritePost ~/.vimrc ソース ~/.vimrc
間隔のデフォルトも設定します。
tabstop=2 を設定します softtabstop=2 shiftwidth=2 expandtab
後で、FileType
イベントを使用して、上記の間隔のデフォルトをファイルタイプ固有の間隔でオーバーライドします。
" Syntax of these languages is fussy over tabs & spaces¬
autocmd FileType make setlocal ts=8 sts=8 sw=8 noexpandtab¬
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab¬
" Customisations based on house-style (arbitrary)
autocmd FileType sh setlocal ts=4 sts=4 sw=4 expandtab
autocmd FileType vim setlocal ts=4 sts=4 sw=4 expandtab
問題
私が抱えている問題は、ソース.vimrc
がデフォルト値を設定するが、FileType
イベントをトリガーしないことです。これは、ファイルタイプ固有のスペースを使用してファイルを編集しているときに:write
to my.vimrc
を実行すると、ファイルタイプ固有のスペースがデフォルトで上書きされることを意味します!
更新: Ingo が指摘したように、この問題は.vimrc
他のファイルでのみ発生し、発生しません。
例
例として、私が自分の で作業しているとき、.vimrc
最初はファイル固有のスペース(イベントは my への書き込みによってトリガーされませんでした)デフォルトの間隔が残っています!ts=4 sts=4 sw=4 expandtab
.vimrc
tabstop=2 softtabstop=2 shiftwidth=2 expandtab
FileType
.vimrc
私の質問
デフォルトの間隔をファイルタイプ固有の間隔で上書きし、自動ソースの場合でもこれらを保持するにはどうすればよい.vimrc
ですか?
可能であれば、autocmd を削除せずにこれを達成したいと考えています。それは可能ですか?
私の予感は、ソーシング時に FileType イベントを手動でトリガーする必要があるということ.vimrc
です。これを行うことはできますか?