在vim中更改水平拆分状态行的突出显示颜色

Fon*_*nae 6 vim

我正在为Vim使用日光化配色方案。当我打开一个水平分割两个窗口的vim会话时,水平分割几乎是不可见的。另一方面,窗口之间的垂直裂缝清晰可见

这是在Cygwin上使用黑暗日光化主题的图片。您会看到一条白色的垂直线将边栏与其他两个窗口分开。您还可以看到一个空白区域(顶部窗口)和一个带有文本的区域(底部窗口)。 问题在于顶部和底部窗口之间实际上没有可见的分隔线。我希望该分隔线与垂直分隔线的颜色相同。

(请注意,任何colorscheme以及在Ubuntu上也使用终端时,都会发生相同的问题。基本上,无论我在哪里使用vim,水平分割都不会突出显示与背景不同。)

在此处输入图片说明

认为以下是solarized.vim的相关行(假设statusline是我要配置的行)。我只是不确定如何修改它们。

exe "hi! StatusLine"     .s:fmt_none   .s:fg_base1  .s:bg_base02 .s:fmt_revbb
exe "hi! StatusLineNC"   .s:fmt_none   .s:fg_base00 .s:bg_base02 .s:fmt_revbb
exe "hi! Visual"         .s:fmt_none   .s:fg_base01 .s:bg_base03 .s:fmt_revbb
exe "hi! Directory"      .s:fmt_none   .s:fg_blue   .s:bg_none
exe "hi! ErrorMsg"       .s:fmt_revr   .s:fg_red    .s:bg_none
exe "hi! IncSearch"      .s:fmt_stnd   .s:fg_orange .s:bg_none
exe "hi! Search"         .s:fmt_revr   .s:fg_yellow .s:bg_none
exe "hi! MoreMsg"        .s:fmt_none   .s:fg_blue   .s:bg_none
exe "hi! ModeMsg"        .s:fmt_none   .s:fg_blue   .s:bg_none
exe "hi! LineNr"         .s:fmt_none   .s:fg_base01 .s:bg_base02
exe "hi! Question"       .s:fmt_bold   .s:fg_cyan   .s:bg_none
if ( has("gui_running") || &t_Co > 8 )
    exe "hi! VertSplit"  .s:fmt_none   .s:fg_base00 .s:bg_base00
else
    exe "hi! VertSplit"  .s:fmt_revbb  .s:fg_base00 .s:bg_base02
endif
Run Code Online (Sandbox Code Playgroud)

编辑:我试图使用史蒂夫建议的命令,但看来我的问题更深了。我设置了以下变量,但它只对侧边栏周围的分隔符着色。水平分割仍然没有改变。有人知道这是怎么回事吗?

exe "hi! StatusLine"     .s:fmt_none   .s:fg_red  .s:bg_red .s:fmt_revbb
exe "hi! StatusLineNC"   .s:fmt_none   .s:fg_red    .s:bg_red
exe "hi! VertSplit"  .s:fmt_revbb  .s:fg_red .s:bg_red
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

EDIT2:我拆开了我的.vimrc文件,并将问题隔离到这些行。一旦注释掉这些行,默认情况下,水平分割的样式就与垂直分割的样式一样。...糟糕!

set statusline=                                        " Override default
set statusline+=%2*\ %f\ %m\ %r%*                      " Show filename/path
set statusline+=%3*%=%*                                " Set right-side status info after this line
set statusline+=%4*%l/%L:%v%*                          " Set <line number>/<total lines>:<column>
set statusline+=%5*\ %*                                " Set ending space
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 6

实际上水平拆分是 StatusLineNC

将其设置为

exe "hi! StatusLineNC"   .s:fmt_none   .s:fg_red .s:bg_base02 .s:fmt_revbb
Run Code Online (Sandbox Code Playgroud)

和 Vsplit 线

   exe "hi! VertSplit"  .s:fmt_none   .s:fg_red .s:bg_red
Run Code Online (Sandbox Code Playgroud)

使它看起来像下面这样。不完全可见,但可以使用颜色。

在此处输入图片说明

编辑:使用https://github.com/Rykka/colorv.vim/来显示颜色可以更容易地看到颜色是什么。