Как изменить выделенную линию Vim, чтобы не быть подчеркиванием?

В некоторых цветовых схемах текущая строка подчеркивает изменение фона, в других, например, Desert, текущая строка подчеркнута.

Я хочу изменить выделение текущей строки в Desert, чтобы использовать другой цвет фона вместо подчеркивания. Как я могу это сделать?

Мой .vimrc:

set cursorline
highlight Cursorline cterm=bold

Обновление: .vimrc, который решает проблему

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

Ответ 1

color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desert - ваша цветовая схема (на первом месте)
поместите его в свой ~/.vimrc

Ответ 2

Это работает лучше (в каждом терминале) для меня.

:hi CursorLine   cterm=NONE ctermbg=darkred ctermfg=white

Это настройка цвета для терминала: цвет фона - ctermbg, а цвет текста - ctermfg. Для использования в графическом окне добавьте параметры guibg=darkred guifg=white

Вы также можете выделить соответствующий столбец, используя команду:

:set cursorcolumn

Полезно включать и выключать подсветку нажатием одной клавиши в редакторе. Добавьте эту строку в свой vimrc:

:nnoremap H :set cursorline! cursorcolumn!<CR>

введите 'H', чтобы включить или выключить подсветку (если хотите) переместите его к другому ключу.

Подробнее вы можете найти в статье: http://vim.wikia.com/wiki/Highlight_current_line

Ответ 3

чтобы линия была похожа на ту, которую вы получаете в gvim в терминале, сохраняя подсветку синтаксиса:

" first thing is entering vim mode, not plain vi
set nocompatible
" force 256 colors on the terminal
set t_Co=256
" load the color scheme before anything
colorscheme darkblue " or desert... or anything
" the syntax cmd is when the colorscheme gets parse, i think..
syntax on

" set the prefered colours, pick one line here only.
" dark grey, better you can get if you don't support 256 colours
hi CursorLine   cterm=NONE ctermbg=8 ctermfg=NONE
" light grey, no 256 colors
hi CursorLine   cterm=NONE ctermbg=7 ctermfg=NONE
" dark redish
hi CursorLine   cterm=NONE ctermbg=52 ctermfg=NONE
" dark bluish
hi CursorLine   cterm=NONE ctermbg=17 ctermfg=NONE
" very light grey
hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE
" yelowish
hi CursorLine   cterm=NONE ctermbg=229 ctermfg=NONE
" almost black
hi CursorLine   cterm=NONE ctermbg=234 ctermfg=NONE

Ответ 4

Если вы хотите повернуть подчеркивание при использовании либо одного из:

:hi CursorLine cterm=underline
:hi CursorLine gui=underline

В противном случае используйте один из следующих:

:hi CursorLine cterm=none
:hi CursorLine gui=none

Ответ 5

У меня была аналогичная проблема с установкой выделения курсора, но моя была вызвана командой mksession, которую я использовал для сохранения информации о сеансе во время выхода vim. Затем этот сеанс автоматически восстанавливается во время запуска программы, если он запускается без аргументов файла.

Если у кого-либо есть такая настройка .vimrc, вы можете добавить следующее в .vimrc, чтобы правильно выбрать выделение курсора: -

function s:SetCursorLine()
    set cursorline
    hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()

Немного объясните, почему это работает. Наряду с различной информацией о буфере и окне mksession сохраняет текущее имя цветовой схемы. Это восстанавливается во время запуска программы посредством восстановления сеанса. Однако, поскольку восстановление сеанса обычно выполняется после запуска .vimrc(обычно с использованием функции, вызванной через "autocmd VimEnter *" ), настройка выделения курсора в .vimrc reset по умолчанию для восстановленной схемы цветов.

Вышеупомянутая функция, вызываемая через autocmd, будет запущена после завершения всей инициализации и, следовательно, успешно настроит выделение курсора.

НТН.