104 votes

Comment changer la ligne de surlignage de Vim pour qu'elle ne soit pas soulignée ?

Dans certains schémas de couleurs, la mise en évidence de la ligne actuelle change de fond, dans d'autres, comme le Désert, la ligne actuelle est soulignée.

Je veux changer le surlignage actuel des lignes dans Desert pour utiliser une couleur de fond différente au lieu du soulignement. Comment puis-je le faire ?

Mon .vimrc :

set cursorline
highlight Cursorline cterm=bold

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

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

8 votes

Probablement à cause de la formulation malheureuse de la question. J'ai pris la liberté de la réécrire pour clarifier l'énoncé, et j'ai également neutralisé le vote négatif.

105voto

kev Points 41855
color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desert est votre schéma de couleurs. (doit venir en premier)
mettez-le dans votre ~/.vimrc

6 votes

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

0 votes

Je sais comment le réparer. Dans votre code, nous devrions changer le soulignement en gras !

3 votes

@Idigas color est une abréviation de colorscheme

82voto

srnka Points 265

Cela fonctionne mieux (dans tous les terminaux) pour moi.

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

Il s'agit du réglage de la couleur du terminal : couleur de fond -. ctermbg et la couleur du texte - ctermfg . Pour l'utilisation dans la fenêtre graphique, ajoutez les paramètres guibg=darkred guifg=white

Vous pouvez également mettre en évidence la colonne correspondante, en utilisant la commande :

:set cursorcolumn

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

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

en tapant 'H' permet d'activer et de désactiver la mise en surbrillance (affectez-la à une autre touche si vous le souhaitez).

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

10 votes

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

2 votes

H est utilisé par défaut pour se déplacer vers le haut du tampon.

27voto

gcb Points 2264

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

0 votes

Vous pouvez également définir la variable d'environnement export TERM=xterm-256color pour que les 256 couleurs fonctionnent. Le tableau complet des couleurs est ici : upload.wikimedia.org/wikipedia/fr/1/15/Xterm_256color_chart.svg

0 votes

Le dernier fonctionne pour moi.

14voto

user5920118 Points 141

Si vous voulez activer le soulignement, utilisez l'une des deux méthodes suivantes :

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

Sinon, utilisez l'un d'entre eux :

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

8voto

Hari Mahadevan Points 404

J'ai eu un problème similaire pour mettre en évidence la ligne de curseur, mais le mien était dû à la commande mksession que j'utilisais pour sauvegarder les informations de la session lors de la sortie de vim. Cette session est ensuite automatiquement restaurée au démarrage du programme, s'il est exécuté sans arguments de fichier.

Si quelqu'un a une configuration de .vimrc comme celle-ci, vous pouvez ajouter ce qui suit à .vimrc pour définir correctement la mise en évidence de la ligne de 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 la raison pour laquelle cela fonctionne. En plus de diverses informations sur les tampons et les fenêtres, mksession enregistre le nom du schéma de couleurs actuel. Celui-ci est restauré lors du démarrage du programme par la restauration de la session. Cependant, puisque la restauration de la session est généralement effectuée après l'exécution de .vimrc (en utilisant une fonction invoquée par 'autocmd VimEnter *'), le paramètre de mise en évidence de la ligne du curseur dans .vimrc est réinitialisé par défaut pour le schéma de couleurs restauré.

La fonction ci-dessus, invoquée par l'intermédiaire de l'autocmd, sera exécutée une fois que toute l'initialisation aura été effectuée, ce qui permettra de mettre en évidence la ligne du curseur.

HTH.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X