Подтвердить что ты не робот

Выделение текущего номера строки в vim

Есть ли способ выделить только текущий номер строки (в левой колонке) в vim, не выделяя фон текущей строки? В идеале, мне бы хотелось сделать текущий номер строки жирным.

4b9b3361

Ответ 1

Есть две группы, которые определяют выделение строки, отображаемой при активной опции &cursorline: CursorLine и CursorLineNR. Сначала используется для выделения всей строки, вторая для номера строки. Чтобы достичь желаемого, вы должны

  • Снимите выделение CursorLine: просто hi clear CursorLine после любых вызовов :colorscheme и set background=.

    hi clear CursorLine
    augroup CLClear
        autocmd! ColorScheme * hi clear CursorLine
    augroup END
    
  • Установите подсветку CursorLineNR, если она не установлена ​​в вашей цветовой схеме:

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

    (лучше проверить, уже ли он установлен в цветовой схеме, возможно, в этом случае он будет выглядеть лучше).

Вы можете присоединиться к обоим автокомандам в одном из них.

CursorLineNR был добавлен относительно недавно вокруг версии 7.3.488.

Ответ 2

Вы хотите посмотреть

:se cursorline

и, возможно, даже/также

:se cursorcolumn

Ответ 3

Это то, что сработало для меня:

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

Я просто использую это в своем .vimrc после установки цветовой схемы. Конечно, вы также можете установить определенный цвет фона, но при установке всех из них NONE просто выделяет номер строки (т.е. Делает ее ярче).

Я думаю, вы могли бы просто использовать :hi CursorLine cterm=NONE, но я просто хотел убедиться, что я делаю все прозрачным (включен gvim).

С CursorLineNR я смог установить цвета переднего плана и фона выделенного номера.

Я только пишу это, потому что для меня это работало без каких-либо автокоманд, и это может быть то, что требуется большинству людей.

Ответ 4

В помощи highlight-groups не упоминается эксклюзивная группа синтаксиса "номер текущей строки", поэтому официальный ответ может быть нет.

Вы можете посмотреть в опции cursorline, которая выделяет всю строку, если это помогает.

Ответ 5

Это помогло мне выделить номер строки, а не остальную часть строки:

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