Colors 输入缓冲区时的配色方案
我的中有这个。vimrc:Colors 输入缓冲区时的配色方案,colors,buffer,vim,Colors,Buffer,Vim,我的中有这个。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
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\u dark.vim”
当我打开任何其他页面时会打开我的浅色配色方案“color\u light.vim” 这非常好,但在拆分窗口中就不那么好了。
每次我单击带有p.e.文本文件的拆分窗口时,所有拆分窗口都会使用浅色方案(甚至是.vim文件)变为浅色。
当我切换到分割窗口中的vim文件时,其他分割窗口中的所有其他文件也会变暗 是否可以在拆分窗口中保留每个文件类型自己的配色方案?
在上面的代码中我需要更改什么 编辑
如果这是不可能的,当我在分割窗口中输入时,是否可以禁用上述代码?(为了让我自己选择colorscheme,所有拆分窗口都是如此)colorscheme将始终影响整个vim实例。每个分割窗口不可能有不同的颜色方案 编辑1:要回答编辑中的第二个问题,您可能可以在第一个
中添加&&winnr(“$”)==1
,如果
,当您打开多个拆分窗口时,可以阻止这种情况发生
编辑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
如果编辑答案不会触发通知,请发表评论。我不明白你最后的评论是什么意思,请你再解释一下好吗?顺便提一下我将您的代码添加到第一个if中,它给出了一个错误:未定义变量:b:colors\u name谢谢Randy。我仍然收到一个错误:-(->在处理“*”的BufEnter自动命令时检测到错误:E15:无效表达式:winnr(“$”}==1在对
winnr()的调用中,您有一个}
而不是)
。不,我希望我有。我在评论中写错了,对不起。我在你的答案中复制了代码。错误仍然存在。你是否在自己的.vimrc中检查了它?