我在某些文件类型上有一些首选colorcheme,但是当我打开另一个文件(具有不同colorcheme的不同文件类型)并返回上一个文件时,新的colorcheme仍然存在。

我在Gvimrc中有这个(使用gvim)

autocmd WinEnter,FileType * colorscheme default
autocmd WinEnter,FileType c,cpp colorscheme darkblue
autocmd WinEnter,FileType R,r colorscheme desert


在缓冲区之间导航时,如何修改以确保colorscheme根据文件类型持久化?

编辑:添加以下内容未解决

autocmd BufEnter,BufNew,FileType c,cpp colorscheme darkblue
autocmd BufEnter,BufNew,FileType R,r colorscheme desert

最佳答案

在同一autocmd规则中组合WinEnterFileType事件是没有意义的。第一个与缓冲区的文件名匹配,而第二个与缓冲区的文件类型匹配。

相反,每当在窗口中输入/显示缓冲区时,都使用一个触发的autocmd,并选择带有&filetype条件的colorschmeme。

:autocmd BufEnter,FileType *
\   if &ft ==# 'c' || &ft ==# 'cpp' | colorscheme darkblue |
\   elseif &ft ==? 'r' | colorscheme desert |
\   else | colorscheme default |
\   endif

07-28 03:07