【发布时间】:2011-06-29 19:19:40
【问题描述】:
当我打开 .vim、.htm、.html、.xml 或 _vimrc 文件时,是否可以更改 Vim 中的颜色方案? (当我切换到具有上述扩展名的已打开文件时,也会更改颜色方案)
这就是我希望我的 vim 做的事情:
file = txt 或新的(未保存的)缓冲区:colorscheme1(默认颜色方案)
文件 = vimrc、vim、html、htm:colorscheme2
我还注意到我的 vim 没有检测到所有文件类型。
文本文件不被识别为文本文件。
ps:
如果这不可能,是否可以切换到另一个颜色方案并在我重新启动 VIM 时保留它(而不更改 vimrc 中的某些内容)?
编辑:
使用自动命令找到解决方案:
augroup filetype_colorscheme
au BufEnter *
\ if !exists('b:colors_name')
\ | if &ft == "vim" || &ft == "html"
\ | let b:colors_name = 'colorscheme 2'
\ | else
\ | let b:colors_name = 'colorscheme 1'
\ | endif
\ | endif
\ | exe 'colorscheme' b:colors_name
augroup END
还有一个问题:
当我单击缓冲区时,上面的代码会更改拆分窗口中所有文件的颜色方案
有没有办法使用快捷键停用(和重新激活)自动命令?
【问题讨论】:
-
vim如何识别文本文件?
-
@black,在我的情况下没有
-
是的,明白了...我想问一下 vim '使用'什么类型而不是文本。
-
@black,抱歉,文本文件根本无法识别。
-
这个成功了:
au BufRead,BufNewFile *.txt set filetype=txt