¿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

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


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


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

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

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.