我读过这个问题
我还执行了以下帮助主题:
:h BufEnter
:h BufNewFile
:h BufLeave
......但仍然 - 我有以下内容vimrc- 它是如何工作的?
colo pyte
autocmd! BufEnter,BufNewFile *.sql colo Zenesque
autocmd! BufLeave *.sql colo pyte
Run Code Online (Sandbox Code Playgroud)
如果我打开一个.sql文件,我假设它正在执行BufNewFile,因此应用颜色方案Zenesque?如果我然后离开那个缓冲区并将光标放在vimrc的缓冲区中,那么肯定该BufLeave行将执行但是哪个缓冲区应用了pyte,为什么我指定.sql旁边BufLeave?
Colorschemes是全球性的; 它们的颜色同时适用于所有窗户.因此,您只能为每个缓冲区/文件类型/窗口创建不同颜色方案的错觉,当您同时看到不同的颜色方案时,它们将被破坏.如果您不使用窗口拆分或仅使用相同颜色方案同时可见的拆分,则您的解决方案:autocmd应该可行.
的BufLeave是对方BufEnter; 这BufNewFile只是新缓冲区的特例.所有都具有相同的*.sql模式,以便它们相互撤消.例如,当您离开时.vimrc,BufEnter将执行.当你向后移动时,BufLeave将执行.对于你的.vimrc缓冲区,类似的事件会触发,但它们背后没有任何动作,因为你还没有定义类似的autocmds *.vim.
注意:如果您想将切换扩展到更多的文件类型和颜色方案,这个答案可能会有所帮助.