Colorschemes当缓冲区
问题描述:
我有这样的:Colorschemes当缓冲区
augroup filetype_colorscheme
au BufEnter *
\ if !exists('b:colors_name')
\ | if &ft == "vim"
\ | let b:colors_name = 'color_dark'
\ | else
\ | let b:colors_name = 'color_light'
\ | endif
\ | endif
\ | exe 'colorscheme' b:colors_name
augroup END
它能做什么:
当我打开vim的页面它打开我的暗色彩方案“color_dark.vim”
当我打开任何其他页面它打开我的light colorscheme“color_light.vim”
这是非常好的,但它不是很好的分裂窗口。
每当我点击与p.e.拆分窗口。一个文本文件,所有分割窗口都会用light colorscheme(甚至是.vim文件)变成浅色。
当我在分割窗口中切换到vim文件时,其他分割窗口中的所有其他文件也变得很暗。
是否有可能在拆分窗口中保留每个文件类型自己的色彩方案?
我需要在上面的代码中更改什么?
编辑
如果无法做到这一点有可能禁用上面的代码,当我在拆分窗口中输入? (为了让我自己选择颜色方案,所有分割窗口都一样)
答
Colorschemes将始终影响整个vim实例。每个拆分窗口不可能有不同的配色方案。
编辑1:要在编辑中回答第二个问题,您可以将&& winnr('$') == 1
添加到第一个if
,以便在打开多个拆分窗口时停止此操作。
编辑2:哎呀,上面的编辑不起作用,但我认为应该将所有内容都包装在另一个if
中。
编辑3:错过了一对管道。
augroup filetype_colorscheme
au BufEnter *
\ | if winnr('$') == 1
\ if !exists('b:colors_name')
\ | if &ft == "vim"
\ | let b:colors_name = 'color_dark'
\ | else
\ | let b:colors_name = 'color_light'
\ | endif
\ | endif
\ | exe 'colorscheme' b:colors_name
\ | endif
augroup END
tnx,请参阅我的更新信息 – Reman 2012-04-19 09:29:20
在编辑答案的情况下评论不会触发您的通知。 – 2012-04-19 21:57:24
我不明白你最后的评论是什么意思,你能解释一下吗?顺便说一句..我把你的代码添加到第一个if,它会给出一个错误:Undefined variable:b:colors_name – Reman 2012-04-20 05:43:01