我在 .vimrc 中有这个:
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页面时,会打开我的 dark colorscheme “color_dark.vim”
当我打开任何其他页面时,它会打开我的 light colorscheme “color_light.vim”
这是非常好的,但它在拆分窗口中不太好 每次当我点击分割窗口时,用p.e.一个文本文件,所有分割窗口都变成浅色的light colorsmeme(甚至是.vim文件) 当我在分割窗口中切换到vim文件时,其他分割窗口中的所有其他文件也会变暗。
是否可以在分割窗口中保留每个文件类型自己的colorscheme? 在上面的代码中我需要更改什么?
修改
如果这不可能,当我进入分割窗口时,是否可以禁用上面的代码? (为了让我自己选择colorscheme,所有分割窗口都一样)
答案 0 :(得分:2)
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