我的 .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 页面时,它会打开我的深色方案“color_dark.vim”
当我打开任何其他页面时,它会打开我的浅色方案“color_light.vim”
这非常好,但在拆分窗口中就不太好了。
每次当我用 p.e. 单击拆分窗口时。一个文本文件,所有分割窗口都会通过浅色方案变成浅色(甚至 .vim 文件)。
当我切换到分割窗口中的 vim 文件时,其他分割窗口中的所有其他文件也会变黑。
是否可以在拆分窗口中保留每个文件类型自己的颜色方案?
上面的代码我需要改变什么?
编辑
如果这是不可能的,当我进入分割窗口时是否可以禁用上面的代码? (为了让我自己选择配色方案,所有分割窗口都一样)
最佳答案
颜色方案将始终影响整个 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
关于进入缓冲区时的配色方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224953/