2011-12-27 2 views
65

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

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

Мои .vimrc:

set cursorline 
highlight Cursorline cterm=bold 

Update: .vimrc что решает проблему

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

Вероятно, из-за неудачной формулировки вопроса. Я взял на себя смелость переписать его, чтобы разъяснить это заявление, а также нейтрализовал отрицательный голос. –

ответ

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

desert Ваш ColorScheme (должен прийти первым)
положить его в ~/.vimrc

.
+6

не работает – ashim

+3

Если вы загружаете цветовую схему после этих строк в vimrc, тогда новая цветовая схема может очищать вещи. Протестируйте командную строку Vim, прежде чем пытаться вставить vimrc. –

+1

@kev с цветамисхем раньше не работает – ashim

34

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

: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

+6

И 'cterm = NONE' - это параметр, который в конечном итоге удаляет подчеркивание линии курсора (в моем случае). – tbloncar

+0

* 'H' * по умолчанию используется для перемещения в верхнюю часть буфера. – quapka

14

к линии похож на тот, который вы получите в 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 
+0

Вы можете также установить переменную окружения 'export TERM = xterm-256color' для 256 цветов для работы. Полная цветовая диаграмма приведена здесь: https://upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg – renergy

+0

Кстати, 'set cursorline' отсутствует в вашем excelpt .vimrc. Взял меня за 10 минут, чтобы понять это :) – renergy

7

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

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

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

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

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

HTH.

10

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

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

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

:hi CursorLine cterm=none 
:hi CursorLine gui=none 
Смежные вопросы