2011-11-23 142 views
29

有没有办法在vim中突出显示只有当前行号(在左边coloumn中),而不突出显示当前行的背景?理想情况下,我想使当前行号码加粗在vim中突出显示当前行号

+0

我不知道这一点,但你知道它在窗口的底部,是吗? – Andrew

+0

它不在我窗口的底部。我的窗口底部只包含文本--INSERT--。您如何获得当前文档位置以显示在窗口底部? – cg433n

+0

我没有意识到它默认情况下没有启动,但显然'set ruler'可能是一个命令:http://www.linuxquestions.org/questions/linux-desktop-74/show-line-and- column-numbers-in-vim-7-0-a-478231/ – Andrew

回答

30

&cursorline选项处于活动状态时,有两组确定突出显示的行:CursorLineCursorLineNR。首先用于突出整行,其次是行号。因此,要实现你想要的,你必须

  1. 清除的CursorLine高亮显示:刚刚hi clear CursorLine任何:colorschemeset background=通话后。

    hi clear CursorLine 
    augroup CLClear 
        autocmd! ColorScheme * hi clear CursorLine 
    augroup END 
    
  2. 设置的CursorLineNR高亮如果不是在你的色彩方案设置:

    hi CursorLineNR cterm=bold 
    augroup CLNRSet 
        autocmd! ColorScheme * hi CursorLineNR cterm=bold 
    augroup END 
    

    (更好地检查它是否在色彩方案已经设置,也许它看起来在这种情况下更好)。

您可以在两个自动命令之一中加入。

CursorLineNR已在最近版本7.3.488附近添加。

+0

聪明的解决方案。什么是星号(在autocmd!ColorScheme之后)?我对vimscript不熟悉。 – cg433n

+0

@ChristopherGreen':h:autocmd':它会告诉你它只能模式化。一个星号表示这个自动命令将为每个颜色方案执行。 – ZyX

+1

@ZyX感谢您的出色答案,但'CursorLineNR'适用于所有Vim版本?我试图按照你的答案,但我不能使用Vim 7.3突出显示当前行号。 – Yang

12

你想看看

:se cursorline 

,甚至/还

:se cursorcolumn 
+0

如何关闭该功能? –

+2

@Pétur与任何其他选项一样,所以'''''''''''''' ':se nocursorline' – sehe

0

的帮助highlight-groups没有提到的语法组独有的“当前行数”,所以官方的回答可能是

您可能想看看cursorline选项,该选项突出显示整条线,如果有帮助。

8

这是对我工作:

highlight CursorLine cterm=NONE ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE 
set cursorline 

我只是用这个在我的.vimrc已经设置的配色方案之后。当然,您也可以设置特定的背景颜色,但将它们全部设置为NONE只会突出显示行号(即使其更亮)。

我想你可以只使用:hi CursorLine cterm=NONE但我只是想确保我做的一切都透明(包括gvim)。

随着CursorLineNR我可以设置突出显示的数字的前景色和背景色。

我只写这个,因为对我来说它没有任何自动命令,它可能是大多数人需要的。

+0

这是一个不错的低影响力的方式来突出显示这条线爱它 – f1lt3r

+0

直向前,优雅。 – Hritik