7 votes

Où est définie la couleur de la ligne du curseur ?

Si je mets cursorline J'obtiens la ligne actuelle du curseur soulignée et tous les caractères dont la couleur n'est pas spécifiée deviennent également jaunes (le jaune n'apparaît que si le groupe de surlignage normal n'est pas touché). Je me demande où cette couleur (jaune) est définie ?

Edit : Je suis au courant CursorLine le groupe principal. Le problème est que, dans le schéma de couleurs par défaut que j'utilise, il n'est pas défini et que :hi CursorLine montre

CursorLine     xxx term=underline cterm=underline

où xxx est coloré en jaune et souligné. Je ne veux pas changer la couleur, je veux ajouter cursorline le soutien à 2html.vim -J'ai donc besoin d'un groupe/variable/etc de mise en évidence d'où je peux obtenir cette couleur jaune.

6voto

Bill Odom Points 2489

Edit : Vous pouvez interroger la plupart des valeurs pour un groupe de surbrillance particulier avec la fonction synIDattr() fonction. Par exemple, ceci imprimera la couleur de premier plan attribuée à CursorLine s'il a été défini :

:echo synIDattr(synIDtrans(hlID("CursorLine")), "fg")

Vous pouvez également déterminer l'état de underline , undercurl etc., avec des appels similaires.

Quelques avertissements : synIDattr() est bogué et incomplet. Il retourne parfois -1 de manière inattendue, et ne permet pas actuellement d'inspecter tous les attributs. (Un correctif est censé être en cours de réalisation pour une prochaine version de Vim.) Voir ces fils de discussion pour plus d'informations :

Problème avec synIDattr()

Détecter de manière programmée un réglage actuel de "mise en évidence" ?

Si synIDattr() ne fera pas ce que vous voulez, il peut être plus facile de rediriger la sortie de l'application highlight dans une variable et l'analyser vous-même :

:redir => cursorline_highlight | silent highlight CursorLine | redir END
:echo "CursorLine highlight: " . cursorline_highlight

La couleur de la ligne du curseur peut être définie à l'aide de l'option highlight commande comme celle-ci :

:highlight CursorLine  term=underline  guibg=#555555  cterm=underline

Cela se fait généralement dans un fichier Vim colorscheme, qui contient de nombreuses lignes de ce type pour définir les couleurs des parties de l'interface utilisateur de Vim, ainsi que des éléments syntaxiques communs tels que les chaînes de caractères, les nombres, les mots-clés, etc.

Vous pouvez indiquer à Vim le schéma de couleurs à utiliser en utilisant la commande colorscheme suivie d'un nom de schéma. En voici quelques-uns à essayer :

:colorscheme desert
:colorscheme evening
:colorscheme koehler

Cependant, la plupart des schémas de couleurs inclus dans Vim ne contiennent pas de commande de mise en évidence pour la balise CursorLine Vim utilise donc simplement la coloration par défaut de la ligne de curseur.

Pour changer les couleurs que Vim utilise pour la ligne du curseur, vous pouvez inclure votre propre highlight dans votre .vimrc fichier ( après vous avez émis des colorscheme sinon vos couleurs de surbrillance risquent d'être effacées). Mieux encore, vous pouvez créer votre propre fichier de schéma de couleurs et y ajouter la déclaration de surbrillance appropriée. (Facilitez-vous la tâche en trouvant un schéma de couleurs tolérable, puis en le copiant et en y apportant les modifications que vous souhaitez).

Vim inclut plusieurs fichiers de schéma de couleurs, et vous pouvez en trouver beaucoup d'autres en ligne. Voici un site qui en présente quelques centaines :

http://code.google.com/p/vimcolorschemetest/

Consultez les rubriques d'aide suivantes pour plus d'informations :

:help :colorscheme
:help :highlight
:help hl-CursorLine

1voto

Sam King Points 670

Consultez également http://vim.wikia.com/wiki/Configuring_the_cursor pour d'autres façons de le personnaliser

0voto

Martín Fixman Points 1140

Sur les coloescemes, la propriété de la couleur de la ligne de curseur est juste appelée "CursorLine". Par exemple, le colorcheme wombat utilise cette ligne :

hi CursorLine guibg=#2d2d2d

Si vous souhaitez modifier un schéma de couleurs par défaut, les fichiers sont stockés (sur la plupart des distributions Linux) sur /usr/share/vim/vim72/colors.

Une seule remarque : l'option CursorLine ne fonctionne qu'à partir de Vim 7, donc dans le cas très improbable où vous utilisez ce colorcheme avec une version antérieure à 7 (ou Vi), vous devez demander la version sur le fichier du colorcheme, par exemple :

if version >= 700
  hi CursorLine guibg=#2d2d2d
endif

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