Як змінити лінію виділення Vim, щоб вона не була підкресленою?


91

У деяких кольорових схемах поточний рядок, що підсвічує, змінює фон, в інших, таких як Desert, поточний рядок підкреслено.

Я хочу змінити поточне підсвічування рядка в Desert, щоб використовувати інший колір тла замість підкреслення. Як я можу це зробити?

Мій .vimrc:

set cursorline
highlight Cursorline cterm=bold

Оновлення: .vimrcце вирішує проблему

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

7
Можливо через невдале формулювання питання. Я дозволив собі переписати його, щоб пояснити заяву, а також нейтралізував негативний голос.
ib.

Відповіді:


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

desert- це ваша кольорова схема. (повинна бути першою)
помістіть її у свій~/.vimrc


4
Якщо ви завантажуєте кольорову схему після цих рядків у vimrc, то нова схема кольорів може очищати ситуацію. Перевірте командний рядок Vim, перш ніж намагатись вставити vimrc.
Герберт Сіц,

Я знаю, як це виправити. У вашому коді ми повинні змінити підкреслення на напівжирний!
ashim

3
@Idigas color- це абревіатура відcolorscheme
kev

1
Це добре працює в gvim або vim-gtk. Але в терміналі vim він лише видаляє підкреслення з поточного рядка. Він не виділяє поточний рядок (принаймні не для мене!).
Омід Камангар

66

Для мене це працює краще (у кожному терміналі).

: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


9
І cterm=NONEце налаштування, яке остаточно видаляє підкреслення рядка курсору (у моєму випадку).
tbloncar

1
Hза замовчуванням використовується для переміщення у верхню частину буфера.
quapka

20

для стилю, подібного до того, який ви отримуєте у 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 parsed, i think..
syntax on
" might not be on by default, this enable the cursor line feature
set cursorline

" 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

Ви також можете встановити змінну середовища export TERM=xterm-256colorдля 256 кольорів для роботи. Повна діаграма кольорів знаходиться тут: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
До речі set cursorline, у вашому уривку .vimrc відсутній. Мені
знадобилося

13

Якщо ви хочете увімкнути підкреслення, скористайтесь одним із:

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

В іншому випадку скористайтеся одним із таких:

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

8

У мене була подібна проблема із встановленням виділення курсора, але моя через команду 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 за замовчуванням скидається для відновленої кольорової схеми.

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

HTH.


0

Ви повинні додати .vimrcкінцевий рядок:

highlight lineNr term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

set cursorline

highlight CursorLine term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

highlight CursorLineNr term=bold cterm=none ctermbg=none ctermfg=yellow gui=bold
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.