0

私はVim 7.3を使用しており、これを私の中に持っています.vimrc(他には何もありません):

filetype plugin indent on
autocmd FileType java :setlocal sw=4 ts=4 sts=2 noet
autocmd BufNewFile,BufReadPost ~/testdir/* setlocal sw=2 ts=2 sts=2 et

サブディレクトリ~/testdirのみを含むディレクトリと、これを含むpファイルがあります。~/testdir/p/A.java

class A {
}

A.javaと言って:e ~/testdir/p/A.java開くと、現在ON:set et?であると報告されます。expandtab

一方、Vim の新しいインスタンスを起動して移動すると:vim A ~/testdir/**、この検索は openになりますがA.java、現在:set et?OFFであると表示されます。expandtab

意図したインデント設定が常に の下のファイルに適用されるようにするにはどうすればよい~/testdir/ですか?

4

3 に答える 3

1

イベントBufReadPostが発生するはずです。メッセージを書いていることを確認します。これは:

autocmd BufNewFile,BufReadPost $HOME/git/repo/* echom "Reading buffer " . expand("<afile>")

次のメッセージを探します。

:messages

メッセージがそこにある場合は、バッファーにそれらのオプションを設定していることがわかります。そのため、バッファが表示されたときにオプションが変更された場合、おそらくプラグインがそれらを別のものに設定しています。最後にオプションを変更した人を表示して、誰が犯人かを確認します

:verbose set sw?

それでも解決しない場合は、BufWinEnter代わりに を使用してみてくださいBufReadPost。それはおそらくうまくいくでしょう。

于 2013-08-22T17:26:08.860 に答える