Rem*_*man 3 vim file-type detection
当我打开.vim,.htm,.html,.xml或_vimrc文件时,是否可以更改Vim中的colorscheme?(当我切换到具有上述扩展名的已经打开的文件时,也会更改colorscheme)
这就是我希望我的vim做的事情:
file = txt或新的(未保存的)缓冲区:colorscheme1(默认colorscheme)
file = vimrc,vim,html,htm:colorscheme2
我还注意到我的vim没有检测到所有文件类型.
文本文件无法识别为文本文件.
ps:
如果这不可能,我可以切换到另一个colorscheme并在我重新启动VIM时保留它(不更改vimrc中的内容)?
编辑:
使用autocmd找到解决方案:
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
Run Code Online (Sandbox Code Playgroud)
还有一个问题:
当我点击一个缓冲区时,上面的代码改变了分割窗口中所有文件的colorscheme
有没有办法使用快捷键去激活(和重新激活)autocmd?
您应该能够使用以下自动命令实现接近您想要的功能:
colo <colourscheme1> "default
autocmd! BufEnter,BufNewFile *.html,*.vim,*xml colo <colourscheme2>
autocmd! BufLeave *.html,*.vim,*xml colo <colourscheme1>
Run Code Online (Sandbox Code Playgroud)
当然,您可以根据需要修改文件扩展名列表.colourscheme <colourscheme1>默认情况下,或者<colourscheme2>如果您打开(或切换到)任何指定类型,并且<colourscheme1>在Vim会话中打开(或切换到)任何其他类型时将恢复为colourscheme .
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |