Win 7のVimは私のシフト幅の設定を.smlファイルだけにしたいものに変更します。Vimは.smlファイルのためにshiftwidthを変更します
私が欲しいのは、すべてがスペースでのみインデントされ、すべてが4つのスペースになることです。
set nocompatible
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set guifont=Consolas:h9:cANSI
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
filetype plugin indent on
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
私が最初にロードされていないファイルでVimを起動し、:set shiftwidth
戻りshiftwidth=4
:私は多くのバリエーションを試してみたが、これは、私の現在の_vimrcファイルの内容です。 .pyまたは.phpファイルを開くと、まだshiftwidth=4
が返されます。しかし、.smlファイルを開くとき、または空白のファイルを拡張子.smlで保存すると、shiftwidth=2
に変わります。手動で:set shiftwidth=2
を設定するとそのセッションで動作しますが、.smlファイルを開くたびにこれを行う必要があります。
開いている.smlファイルのバッファにのみ影響します。保存されていないバッファまたは別のファイルタイプが同時に開いているバッファは、shiftwidth = 4です。
以前はfiletypeプラグインインデントのものを使用していませんでしたが、検索の後に問題があるようでした。そこに私ftpluginフォルダにはファイルがなかったので、私は私の_vimrcにfiletype plugin indent on
を追加、sml.vimを作成し、多くのバリエーションを試してみました、再び(ftpluginフォルダにそれを置く:
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
私はsml.vimがされている知っているが私が最初にそれにエラーを入れて、彼らがキャッチされたので読んでください。
これが関連しているが、そこ.smlについて何が私のindent.vimでいない、と私のインデントフォルダが空であるかどうかわからないが。
はまだありませんVimは.smlファイルをロードするたびにshiftwidth = 2を設定していますが、理由を知りたいのですが。
更新:私が言ったインデントフォルダは、vim \ vimfiles \ indentです。以下の答えとコメントの後、私はsml.vimを検索し、別のインデントフォルダvim \ vim73 \ indentを見つけました。私はsml.vimを編集し、shiftwidth = 2をshiftwidth = 4に変更し、問題を解決しました。
負荷.smlファイルと実行 ':動詞セットsw' - それは最後にあった場所、それはあなたを伝えるものセット。 – sidyll