¿Cómo cambio mi línea de resaltado de Vim para que no sea un subrayado?

91

En algunos esquemas de colores, la línea actual que resalta cambia el fondo, en otros, como Desierto, la línea actual está subrayada.

Quiero cambiar la línea actual resaltada en Desert para usar un color de fondo diferente en lugar de subrayar. ¿Cómo puedo hacer eso?

Mi .vimrc:

set cursorline
highlight Cursorline cterm=bold

Actualización: .vimrceso resuelve el problema

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40
como él
fuente
7
Probablemente debido a la desafortunada redacción de la pregunta. Me tomé la libertad de reescribirlo para aclarar la declaración y también neutralicé el voto negativo.
ib.

Respuestas:

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

desertes su esquema de colores. (debe ir primero)
póngalo en su~/.vimrc

kev
fuente
4
Si está cargando un esquema de colores después de esas líneas en vimrc, es posible que el nuevo esquema de colores esté aclarando las cosas. Pruebe en la línea de comando de Vim antes de intentar instalar vimrc.
Herbert Sitz
Yo se como arreglarlo. En su código, deberíamos cambiar el subrayado a negrita.
ashim
3
@Idigas colores una abreviatura decolorscheme
kev
1
Esto funciona bien en gvim o vim-gtk. Pero en la terminal vim solo elimina el subrayado de la línea actual. No resalta la línea actual (¡al menos no para mí!).
Omid Kamangar
66

Esto funciona mejor (en cada terminal) para mí.

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

Es la configuración del color para el terminal: color de fondo - ctermbg y color del texto - ctermfg . Para usar en la ventana gráfica, agregue parámetrosguibg=darkred guifg=white

También puede resaltar la columna correspondiente, usando el comando:

:set cursorcolumn

Es útil activar y desactivar el resaltado presionando una tecla en el editor. Agregue estas líneas a su vimrc :

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

escribir 'H' activará y desactivará el resaltado (Asignelo a otra tecla si lo desea)

Puede encontrar más información en el artículo: http://vim.wikia.com/wiki/Highlight_current_line

srnka
fuente
9
Y cterm=NONEes la configuración que finalmente elimina el subrayado de la línea del cursor (en mi caso).
tbloncar
1
Hse utiliza de forma predeterminada para moverse a la parte superior del búfer.
quapka
20

para un estilo similar al que obtienes en gvim en la terminal, conservando el resaltado de sintaxis:

" 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
gcb
fuente
También puede configurar la variable de entorno export TERM=xterm-256colorpara que funcionen 256 colores. La tabla de colores completa está aquí: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt
1
Por cierto, set cursorlinefalta en su extracto de .vimrc. Me tomó 10 minutos darme cuenta :)
apurkrt
13

Si desea activar el subrayado, utilice uno de los siguientes:

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

De lo contrario, use uno de esos:

:hi CursorLine cterm=none
:hi CursorLine gui=none
user5920118
fuente
8

Tuve un problema similar al configurar el resaltado de la línea del cursor, pero el mío se debió al comando mksession que estaba usando para guardar la información de la sesión durante la salida de vim. Esta sesión se restaura automáticamente durante el inicio del programa, si se ejecuta sin argumentos de archivo.

Si alguien tiene una configuración .vimrc como esta, puede agregar lo siguiente a .vimrc para configurar el resaltado de la línea de cursor correctamente: -

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

Una pequeña explicación de por qué funciona esto. Junto con diversa información de búfer y ventanas, mksession guarda el nombre del esquema de colores actual. Esto se restaura durante el inicio del programa mediante la restauración de la sesión. Sin embargo, dado que la restauración de la sesión generalmente se realiza después de ejecutar .vimrc (generalmente usando una función invocada a través de 'autocmd VimEnter *'), la configuración de resaltado de la línea del cursor en .vimrc se restablece de forma predeterminada para el esquema de colores restaurado.

La función anterior, invocada a través de autocmd, se ejecutará después de que se complete toda la inicialización y, por lo tanto, establezca con éxito el resaltado de la línea de cursor.

HTH.

Hari Mahadevan
fuente
0

Debe agregar la .vimrclínea final:

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
csx
fuente