自定义vim的标签栏颜色

问题描述:

如何修改vim的标签栏颜色?自定义vim的标签栏颜色

我已经尝试使用

:hi TabLineFill ctermbg=N 

这确实改变了标签栏的背景到“N”表示该颜色的颜色,但是这是我设法从谷歌搜索来收集。我看了一下:help cterm-colors,但是我没有从中得到更多的理解。

我可以使用这个高光设备来改变活动标签的前景和背景以及非活动标签的前景和背景的颜色吗?如果是这样,我将如何去做这件事?

你可以做到以下几点,例如:

:hi TabLineFill ctermfg=LightGreen ctermbg=DarkGreen 
:hi TabLine ctermfg=Blue ctermbg=Yellow 
:hi TabLineSel ctermfg=Red ctermbg=Yellow 

这条线会影响每个标签窗口计数器:

:hi Title ctermfg=LightBlue ctermbg=Magenta 

选择突出花哨的颜色各有什么项目的变化。

我发现在看真的有帮助,当玩highlighting

请注意,这些改变了在控制台中运行的Vim的颜色。如果您想更改GVim的颜色,则需要使用guibg,guifg,等等。例如:

:hi TabLineFill guifg=LightGreen guibg=DarkGreen ctermfg=LightGreen ctermbg=DarkGreen 
+1

如何选择该选项卡时每个选项卡的窗口计数器的样式? – jviotti

是的,你会的。

里有耳线,可定制自己的喜好三个项目:TabLineTabLineSelTabLineFill分别指定

TabLineSel - 是当前(这么说)活动标签标签。
TabLine - 是当前未激活的标签。
TabLineFill - 是没有标签(背景)的标签线的其余部分。

您可以按通常的方式修改其中的三个。

'tabline'选项指定标签页标签的外观。 仅当没有GUI选项卡行时才使用它。

您可以使用'showtabline'选项来指定何时显示包含 标签页标签的行:从不,当存在多个标签页或始终存在多个标签页时。

标签页行的突出显示是使用TabLine TabLineSel和TabLineFill设置的。| HL-TabLine | | HL-TabLineSel | | HL-TabLineFill分别指定|

对于具有修改窗口的标签页,将显示“+”。还显示了页面中的 窗口的数量。因此“3+”意味着三个窗口并且其中一个具有修改的缓冲区。

'tabline'选项允许您定义标签页 标签的首选方式。这并不容易,因此这里给出一个例子。

有关基本信息,请参阅'statusline'选项。可以在 'tabline'选项中使用相同的项目。此外,| tabpagebuflist()|,| tabpagenr()|和 | tabpagewinnr()|功能很有用。

由于选项卡标签的数量会有所不同,因此您需要使用整个选项的表达式来表示 。例如:> :set tabline =%!MyTabLine()

然后定义MyTabLine()函数以列出所有标签页标签。 A 方便的方法是将其分为两部分:首先浏览所有选项卡 页面并为它们定义标签。然后获取每个标签页的标签。 >

function MyTabLine() 
    let s = '' 
    for i in range(tabpagenr('$')) 
    " select the highlighting 
    if i + 1 == tabpagenr() 
     let s .= '%#TabLineSel#' 
    else 
     let s .= '%#TabLine#' 
    endif 

    " set the tab page number (for mouse clicks) 
    let s .= '%' . (i + 1) . 'T' 

    " the label is made by MyTabLabel() 
    let s .= ' %{MyTabLabel(' . (i + 1) . ')} ' 
    endfor 

    " after the last tab fill with TabLineFill and reset tab page nr 
    let s .= '%#TabLineFill#%T' 

    " right-align the label to close the current tab page 
    if tabpagenr('$') > 1 
    let s .= '%=%#TabLine#%999Xclose' 
    endif 

    return s 
endfunction 

现在为每个标签页调用MyTabLabel()函数来获取其标签。 >

function MyTabLabel(n) 
    let buflist = tabpagebuflist(a:n) 
    let winnr = tabpagewinnr(a:n) 
    return bufname(buflist[winnr - 1]) 
endfunction 

这仅仅是一个简单的例子,结果在一个标签页行该 类似于默认,但不添加用于+改性缓冲器或 截断名称。在没有足够空间时,您会希望以巧妙的方式减少标签的宽度。检查 可用空间的'列'选项。

+1

lol文字复制粘贴。并不是说这是一个不好的答案。 – Kvass