Showing a different background colour in Vim past 80 characters

前端 未结 6 1076
陌清茗
陌清茗 2020-12-07 06:53

I have seen Vim 80 column layout concerns, but the answer there highlights only actual content that goes over the 80 character mark. I want to have a 100+ column Vim window

相关标签:
6条回答
  • 2020-12-07 07:24

    try:

    :/\%>80v./+
    

    it will mark +80 characters as error

    0 讨论(0)
  • 2020-12-07 07:25

    I don't think that it's possible to have what you want, but I following this question since I am interested in such a thing myself.

    Maybe, I am stating the obvious, but you could setup the highligth in the 70th+ columns to get an indication of how close you get to the 80th column.

    0 讨论(0)
  • 2020-12-07 07:26

    If you have Vim >= v7.3, you can simply add this to your .vimrc to highlight 81 and onward (so 80 is your last valid column):

    let &colorcolumn=join(range(81,999),",")
    

    If you don't see a highlight, you may not have a ColorColumn highlight color set. Add this (adjust to suit your preferences):

    highlight ColorColumn ctermbg=235 guibg=#2c2d27
    

    Now I like to highlight column 80 as well as 120 and onward, so I have separate "warning" and "danger" markers. You can do that thusly:

    let &colorcolumn="80,".join(range(120,999),",")
    

    Example

    Here's a screenshot of GVim editing my .vimrc.

    GVim editing my .vimrc

    I use Ubuntu Mono 11 font and the molokai color scheme. You can find my vim config and all of my dotfiles on GitHub.

    0 讨论(0)
  • 2020-12-07 07:26

    Solution proposed in comment above. Highlight your background first then highlight the ColorColumn black as an overlay. Set your colorcolumn to lines 1-80.

    hi Normal guibg=#32322f ctermbg=236
    hi NonText guibg=#32322f ctermbg=236
    hi ColorColumn guibg=#000000 ctermbg=0
    let &colorcolumn=join(range(1,80),",")
    
    0 讨论(0)
  • 2020-12-07 07:30

    Highlight 81 column

    :set textwidth=80
    :set colorcolumn=+1
    

    You may also make some styling:

    :hi ColorColumn guibg=#2d2d2d ctermbg=246
    
    0 讨论(0)
  • 2020-12-07 07:34

    For those using onedark.vim like me that wants a solution posted by Conner, I added these lines to my vimrc file

    let &colorcolumn=join(range(1,80),",")
    let g:onedark_color_overrides = {
      \ "black": {"gui": "#2C323C", "cterm": "236", "cterm16": "8"},
      \ "cursor_grey": {"gui": "#282C34", "cterm": "235", "cterm16": "0"}
      \ }
    

    I just swapped the two values, took it from the source code of onedark

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