Highlighting the current line number in vim

前端 未结 6 638
忘了有多久
忘了有多久 2021-01-30 20:47

Is there a way to highlight only the current line number (in the left hand coloumn) in vim, without highlighting the background of the current line? Ideally, I

相关标签:
6条回答
  • 2021-01-30 21:21

    You can set cursorline to highlight only the numbers

    'cursorlineopt' 'culopt' string (default: "number,line")                        
                            local to window                                         
                            {not available when compiled without the +syntax        
                            feature}                                                
            Comma separated list of settings for how 'cursorline' is displayed.     
            Valid values:                                                           
            "line"          Highlight the text line of the cursor with              
                            CursorLine hl-CursorLine.                               
            "screenline"    Highlight only the screen line of the cursor with       
                            CursorLine hl-CursorLine.                               
            "number"        Highlight the line number of the cursor with            
                            CursorLineNr hl-CursorLineNr.             
    

    And to override your colorscheme use autocmd

    So, the following works:

    set cursorline
    set cursorlineopt=number
    autocmd ColorScheme * highlight CursorLineNr cterm=bold term=bold gui=bold
    
    0 讨论(0)
  • 2021-01-30 21:30

    This is what worked for me:

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

    I'm just using this in my .vimrc after having set the color scheme. Of course you could also set a specific background color but setting all of them to NONE just highlights the line number (i.e. makes it brighter).

    I guess you could just use :hi CursorLine cterm=NONE but I just wanted to make sure I'm making everything transparent (gvim included).

    With CursorLineNR I was then able to set the foreground and background colors of the highlighted number.

    I'm only writing this because for me it worked without any autocommands and it may be what most people require.

    0 讨论(0)
  • 2021-01-30 21:33

    You want to look at

    :se cursorline
    

    and perhaps even/also

    :se cursorcolumn
    
    0 讨论(0)
  • 2021-01-30 21:33

    This worked for me to highlight the line number and not the rest of the line:

    highlight CursorLineNr cterm=NONE ctermbg=15 ctermfg=8 gui=NONE guibg=#ffffff guifg=#d70000

    0 讨论(0)
  • 2021-01-30 21:35

    There are two groups that determine highlighting of line displayed when &cursorline option is active: CursorLine and CursorLineNR. First is used to highlight the whole line, second for the line number. So to achieve what you want you must

    1. Clear the highlighting of CursorLine: just hi clear CursorLine after any :colorscheme and set background= call.

      hi clear CursorLine
      augroup CLClear
          autocmd! ColorScheme * hi clear CursorLine
      augroup END
      
    2. Set the highlighting of CursorLineNR if it is not set in your colorscheme:

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

      (better to check whether it is already set in the colorscheme, maybe it will look better in that case).

    You can join both autocommands in one of course.

    CursorLineNR has been added relatively recently around version 7.3.488.

    0 讨论(0)
  • 2021-01-30 21:38

    The help for highlight-groups does not mention an exclusive "number of current line" syntax group, so the official answer might be no.

    You may want to take a look in the cursorline option which highlights the entire line, if it helps.

    0 讨论(0)
提交回复
热议问题