インデントスクリプトと:filetype

> autocmdで行わずfiletype pluginにc.vimなどを作ってその中で「indent on」をしておく。ということですか。
絶対にノゥ。:help :filetype-overviewを参照してください。
インデント関係の設定はfiletype pluginとは別に用意されています。:help 'runtimepath'なども読んでみてください。

コメント欄で教えて頂いたfiletype-overviewとruntimepathをヘルプってみた。

インデントスクリプトという初めて存在を知りました。
ファイルタイプごとに独自の設定ができ、ftpluginとは別にindentというディレクトリをきって設定するようです。

例は$VIMRUNTIME/indentを参照

と書いてあったので見てみたのですが「c.vim」はコメントを除くとこれだけです。
cindentオプションに全部集約されているんでしょう。

if exists("b:did_indent")
   finish
endif
let b:did_indent = 1
setlocal cindent
let b:undo_indent = "setl cin<"

Rubyのindentファイルを見て卒倒しました。
indentを制御は設定というレベルを超えて、vimscript全開です。
これは、すごい。
今まで気に留めなく使っていた機能ですが、改めてありがたさを実感。

:filetype

help

:help :filetype-overview
:filetype

はファイル形式に関して3つの制御ができるようです。
3つとは下記の指定。

  • on/off
    • ファイル形式の検出
  • plugin
  • indent
    • インデントの有効の有無
コマンド 検出 プラグイン インデント
:filetype on 有効 変化なし 変化なし
:filetype off 無効 変化なし 変化なし
:filetype plugin on 有効 有効 変化なし
:filetype plugin off 変化なし 無効 変化なし
:filetype indent on 有効 変化なし 有効
:filetype indent off 変化なし 変化なし 無効
:filetype plugin indent on 有効 有効 有効
:filetype plugin indent off 変化なし 無効 無効

ふむふむ。


usr_30の3にも説明があった。


なるほどなるほど。


これはわかりやすい説明だ。
help最高。