我正在为Vim使用曝光的配色方案。当我打开一个水平分割的两个窗口的vim会话时,水平分割几乎是不可见的。另一方面,窗口之间的垂直分割清晰可见
这是一张在cygwin上使用黑暗曝光主题的照片。您可以看到白色垂直线将侧边栏与其他两个窗口分开。您还可以看到空白区域(顶部窗口)和带文本的区域(底部窗口)。 问题是顶部和底部窗口之间实际上没有可见的分隔线。我希望这个分隔符与垂直分隔符的颜色相同。
(请注意,任何colorscheme以及在Ubuntu上使用终端时都会出现同样的问题。基本上,无论我在哪里使用vim,水平分割都不会突出显示与背景不同。)
以下是我认为是solarized.vim的相关行(假设状态行是我想要配置的)。我只是不确定如何修改它们。
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
编辑:我试图使用史蒂夫建议的命令,看来我的问题在某种程度上更深。我设置了以下变量,但它只对侧边栏周围的分隔符着色。水平分裂仍然没有改变。有人知道这里发生了什么吗?
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
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
答案 0 :(得分:3)
实际上,水平分割是StatusLineNC
将其设置为
exe "hi! StatusLineNC" .s:fmt_none .s:fg_red .s:bg_base02 .s:fmt_revbb
和Vsplit一行
exe "hi! VertSplit" .s:fmt_none .s:fg_red .s:bg_red
使其如下所示。不完全可见,但玩颜色。
编辑:使用https://github.com/Rykka/colorv.vim/显示颜色,使得更容易看到颜色是什么。
答案 1 :(得分:2)
关于如何在不破坏颜色的情况下设置状态线的样式,状态行中的'%[num] *'序列使其从StatusLine突出显示切换到User [num]突出显示。如果您删除它们(或定义相关的高光),您可以使用自定义状态栏而不会突破高亮显示。
来自:help'statusline'
* - Set highlight group to User{N}, where {N} is taken from the
minwid field, e.g. %1*. Restore normal highlight with %* or %0*.
The difference between User{N} and StatusLine will be applied
to StatusLineNC for the statusline of non-current windows.
The number N must be between 1 and 9. See |hl-User1..9|