2

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

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

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

当我在缓冲区中导航时,如何修改以确保颜色方案根据文件类型持续存在?

编辑:添加以下内容没有解决

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

2 回答 2

7

在同一个 autocmd 规则中组合WinEnter和事件是没有意义的;FileType第一个匹配缓冲区的文件名,而后者匹配缓冲区的文件类型。

相反,只要在窗口中输入/显示缓冲区,就使用触发的单个 autocmd,并选择带有条件的颜色模式&filetype

:autocmd BufEnter,FileType *
\   if &ft ==# 'c' || &ft ==# 'cpp' | colorscheme darkblue |
\   elseif &ft ==? 'r' | colorscheme desert |
\   else | colorscheme default |
\   endif
于 2013-03-01T08:36:44.020 回答
7

Ingo 的答案更聪明,但这些自动命令

autocmd BufEnter *     colorscheme default
autocmd BufEnter *.php colorscheme desert
autocmd BufEnter *.py  colorscheme darkblue

应该管用。好吧,他们在这里工作。

于 2013-03-01T08:44:45.180 回答