在Vim中为文件类型设置配色方案

3

在vim中,我试图使用一个自动命令来为某些文件类型使用特殊的颜色方案。奇怪的是,这并不适用于所有文件类型。这是我的vimrc:

autocmd filetype troff :colorscheme troff
autocmd filetype tintin :colorscheme troff
autocmd BufNewFile,BufRead *.tt set ft=tintin
autocmd BufNewFile,BufRead *.tr set ft=troff

在打开 f.tr 文件时,使用了 "troff" 颜色方案,但是在打开 f.tt 文件并且正确设置了文件类型为 "tintin" 时,会使用默认的颜色方案。如果我手动设置文件类型(set ft=tintin),则会加载 "troff" 颜色方案。请问您能帮我找出这种奇怪行为的原因吗?

1个回答

0

我无法重现您的问题。但是我建议使用以下自动命令:

autocmd BufNewFile,BufRead *.tt let g:tmpcolor=g:colors_name            
autocmd BufNewFile,BufRead *.tr let g:tmpcolor=g:colors_name            
autocmd BufEnter *.tt colorscheme troff | set ft=tintin                  
autocmd BufEnter *.tr colorscheme troff | set ft=troff                   
autocmd BufLeave *.tt exe 'colorscheme '.g:tmpcolor                     
autocmd BufLeave *.tr exe 'colorscheme '.g:tmpcolor

这将创建一个变量g:tmpcolor,用于存储原始的颜色方案。当您编辑类型为.tt.tr的文件时,颜色方案将更改为troff。当您离开这些文件时,颜色方案将更改为g:tmpcolor


我也无法重现这个问题。在两种情况下都加载了颜色方案(尽管由于某些原因“:colo”仍会打印“default”)。 - Jon
谢谢你们两个的回答。无法复现问题表明问题不是来自我的vim脚本,这还是有点令人困惑的。 - pjfichet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接