1

私はこのSOの質問を読みました

次のヘルプ トピックも実行しました。
:h BufEnter
:h BufNewFile
:h BufLeave

...しかし、それでも-次のものがありますvimrc-どのように機能しますか?

colo pyte
autocmd! BufEnter,BufNewFile *.sql colo Zenesque
autocmd! BufLeave  *.sql colo pyte

ファイルを開く.sqlと、その実行が想定BufNewFileされるため、Zenesque の配色が適用されます。次に、そのバッファーを離れてvimrcのバッファーにカーソルを置くと、確かにBufLeave行は実行されますが、どのバッファーにpyteが適用されますか?なぜ.sql次のように指定するのBufLeaveですか?

4

1 に答える 1

6

カラースキームはグローバルです。それらの色はすべてのウィンドウに同時に適用されます。したがって、バッファ/ファイルタイプ/ウィンドウごとに異なるカラースキームの錯覚を作成することしかできません。これは、異なるカラースキームを同時に表示すると粉砕されます。ウィンドウ分割を使用しない場合、または同時に表示される同じカラースキームを使用する分割しかない場合でも、ソリューションは機能する:autocmdはずです。

は;BufLeaveの対応物です。BufEnterこれBufNewFileは、新しいバッファの特殊なケースです。*.sql互いに元に戻すように、すべて同じパターンを持っています。たとえば、 から移動する.vimrcと、BufEnterが実行されます。戻ると、BufLeaveが実行されます。.vimrcバッファに対して同様のイベントが発生しますが、*.vim.

注:切り替えをより多くのファイルタイプとカラースキームに拡張したい場合は、この回答が役立つ場合があります。

于 2013-05-22T13:33:57.543 に答える