Comment changer ma ligne de surbrillance Vim pour qu'elle ne soit pas un soulignement?


91

Dans certains modèles de couleurs, la ligne actuelle de surbrillance change de fond, dans d'autres, comme Désert, la ligne actuelle est soulignée.

Je veux changer la mise en évidence de la ligne actuelle dans Desert pour utiliser une couleur d'arrière-plan différente au lieu de souligner. Comment puis je faire ça?

Mon .vimrc:

set cursorline
highlight Cursorline cterm=bold

Mise à jour: .vimrccela résout le problème

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

7
Probablement à cause de la formulation malheureuse de la question. J'ai pris la liberté de le réécrire pour clarifier la déclaration et j'ai également neutralisé le vote négatif.
ib.

Réponses:


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

desertest votre choix de couleurs. (devrait venir en premier)
mettez-le~/.vimrc


4
Si vous chargez un schéma de couleurs après ces lignes dans le vimrc, le nouveau schéma de couleurs peut effacer les choses. Testez sur la ligne de commande Vim avant d'essayer de mettre dans vimrc.
Herbert Sitz

Je sais comment y remédier. Dans votre code, nous devrions changer le soulignement en gras!
ashim

3
@Idigas colorest l'abréviation decolorscheme
kev

1
Cela fonctionne bien dans gvim ou vim-gtk. Mais dans le terminal vim, il supprime uniquement le soulignement de la ligne actuelle. Il ne met pas en évidence la ligne actuelle (du moins pas pour moi!).
Omid Kamangar

66

Cela fonctionne mieux (dans chaque terminal) pour moi.

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

C'est le réglage de la couleur pour le terminal: la couleur d'arrière-plan - ctermbg et la couleur du texte - ctermfg . Pour une utilisation dans la fenêtre graphique, ajoutez des paramètresguibg=darkred guifg=white

Vous pouvez également mettre en évidence la colonne correspondante à l'aide de la commande:

:set cursorcolumn

Il est utile d'activer et de désactiver la mise en surbrillance en appuyant sur une touche dans l'éditeur. Ajoutez ces lignes à votre vimrc :

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

taper 'H' activera et désactivera la mise en évidence (mappez-la sur une autre touche si vous le souhaitez)

Vous pouvez trouver plus d'informations dans l'article: http://vim.wikia.com/wiki/Highlight_current_line


9
Et cterm=NONEc'est le paramètre qui supprime finalement le soulignement de la ligne du curseur (dans mon cas).
tbloncar

1
Hest par défaut utilisé pour se déplacer vers le haut du tampon.
quapka

20

pour un style similaire à celui que vous obtenez dans gvim dans le terminal, en préservant la coloration syntaxique:

" 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

Vous pouvez également définir la variable d'environnement export TERM=xterm-256colorpour que 256 couleurs fonctionnent. Le nuancier complet est ici: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
Par ailleurs, il set cursorlinemanque dans votre extrait .vimrc. Il m'a
fallu

13

Si vous souhaitez activer le soulignement, utilisez l'un des éléments suivants:

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

Sinon, utilisez l'un de ceux-ci:

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

8

J'ai eu un problème similaire lors de la mise en surbrillance de la ligne du curseur, mais le mien était dû à la commande mksession que j'utilisais pour enregistrer les informations de session lors de la sortie de vim. Cette session est ensuite automatiquement restaurée au démarrage du programme, si elle est exécutée sans aucun argument de fichier.

Si quelqu'un a une configuration .vimrc comme celle-ci, vous pouvez ajouter ce qui suit à .vimrc pour définir correctement la mise en évidence de la ligne du curseur: -

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

Un peu d'explication sur pourquoi cela fonctionne. Avec diverses informations de tampon et de fenêtre, mksession enregistre le nom du schéma de couleurs actuel. Ceci est restauré au démarrage du programme via la restauration de session. Cependant, étant donné que la restauration de session est généralement effectuée après l'exécution de .vimrc (généralement en utilisant une fonction appelée via 'autocmd VimEnter *'), le paramètre de surbrillance de la ligne du curseur dans .vimrc est réinitialisé par défaut pour le schéma de couleurs restauré.

La fonction ci-dessus, appelée via autocmd, sera exécutée une fois que toute l'initialisation est terminée et définit donc avec succès la surbrillance de la ligne du curseur.

HTH.


0

Vous devez ajouter une .vimrcligne de fin:

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.