1

私がvimにPythonファイルをロードするとしましょう。を簡単にチェックする:scriptnamesと、~/.vim/ftplugin/python/python.vimファイルが期待どおりに読み込まれることがわかります。このファイルのコマンドの1つは、80番目の列を過ぎたすべての文字を強調表示します。ここで、別のバッファーでC ++ファイルを開いたとします(したがって、を実行します~/.vim/ftplugin/cpp/cpp.vim)。新しいコマンドが実行されても、の設定はpython.vim引き続き適用されます。したがって、文字はC++ファイルの80列目以降で強調表示されます。

このようにファイルタイプコマンドを累積しないようにする方法はありますか?私はfiletype plugin indent on私の中にい.vimrcます。

4

1 に答える 1

3

問題は、'colorcolumn':match(新しい設定を使用するか古いハイライトアプローチを使用するかを指定しなかった)の両方がウィンドウに対してローカルであるということですが、ftpluginsはバッファローカル設定のみを設定する必要があります。

これらの設定がウィンドウローカルであるのはなぜですか?これにより、同じバッファを2つのウィンドウに表示できます。1つは強調表示あり、もう1つは強調表示なしです。

これを防ぐために何ができますか?

a)ftpluginでこれを設定せず、代わりにマッピングを使用してカラー列のオン/オフを切り替えます。

b)使用しているすべてのファイルタイプの:setlocal nocolorcolumnすべてのftpluginスクリプト(例:)に入れ~/.vim/after/ftplugin/*.vimます。これは、同じウィンドウで異なるファイルタイプを切り替えない限り機能します。

c)これを解決する正しい(しかし最も複雑な)方法は、、、およびイベントのいくつかを使用することです:autocmdBufWinEnterBufWinLeaveWinLeave

于 2012-12-21T03:05:31.733 に答える