在Vim中,我想为每种文件类型使用不同的colorscheme.
例如,我想将desert256colorscheme用于Python和JavaScript文件,并将jellybeanscolorscheme用于HTML和CSS文件.
我已经尝试将以下代码放入我的中.vimrc,但只有在第一次更改缓冲区时才会发生colorscheme更改.
即如果我打开一个新的Python文件,就会使用Python的colorscheme,当我打开一个新的CSS*buffer*时,colorscheme确实会改变CSS的colorscheme.但是,更改回Python的缓冲区不会改变colorscheme.
我曾经autocmd WinEnter尝试在更改窗口(和缓冲区)时使这个规则发生,但它没有帮助:
autocmd WinEnter,FileType python,javascript colorscheme desert256
autocmd WinEnter,FileType *,html,css        colorscheme jellybeans  " This includes default filetype colorscheme.
我怎样才能解决这个问题?此外,奖励是在不需要时不更改colorscheme - 即从Python更改为JavaScript缓冲区不会将colorscheme更改为"本身".
如果有人有兴趣,这是我.vimrc在github.com的回购.我会用我在这里找到的解决方案更新它.
Use*_*ser 25
我一直在寻找同样的事情.你的.vimrc内部工作得相当好,虽然不完美.
autocmd BufEnter * colorscheme default
autocmd BufEnter *.php colorscheme Tomorrow-Night
autocmd BufEnter *.py colorscheme Tomorrow
(注意,如果你正在寻找一个好的深色主题明天 - 夜晚看起来很不错.非常类似于Code Academy使用的主题.)
cle*_*oux 18
你想要的是filetype插件,而不是autocmds.help: ftplugin在vim中运行以获取更多信息.
从vim帮助页面:
文件类型插件类似于全局插件,除了它设置选项并仅为当前缓冲区定义映射.
要使用filetype插件,首先将该行filetype plugin on放在vimrc中.然后ftplugin在你的vim文件夹中创建文件夹(在unix上~/.vim/,我不熟悉windows).然后为要自定义的每种文件类型创建一个脚本文件.必须以特定方式命名这些文件.从vim帮助页面:
文件类型插件的通用名称是:
ftplugin/filetype.vim
ftplugin/filetype_name.vim
ftplugin/filetype/name.vim
因此,例如,如果我想为python文件创建脚本,我将有三个选项:
每当我打开vim识别为python文件的文件时,都会加载此脚本.
所以,为了实现你想要的:
colorscheme name_of_colorschemefiletype plugin on到您的vimrc.编辑:OP表示他有充分的理由避免使用ftplugin目录.经过一点点挖掘后,我找到了这个脚本. 它可以放在全局vimrc中,似乎旨在解决与OP相同的问题.
| 归档时间: | 
 | 
| 查看次数: | 15685 次 | 
| 最近记录: |