18 votes

Dans vim, la couleur de fond change en faisant défiler.

Occasionnellement, je rencontre une erreur étrange avec la couleur de fond dans vim lorsque je fais défiler vers le haut dans un long fichier. Le fond par-dessus le texte est correct, mais partout où il n'y a pas de caractère imprimable, le fond devient noir.

Après un peu de recherche et d'expérimentation, j'ai constaté que :redraw! corrige le problème, mais j'aimerais savoir pourquoi cela se produit et s'il y a quelque chose que je peux faire pour résoudre définitivement le problème.

Bien que j'aie réussi à reproduire cette erreur avec d'autres jeux de couleurs, pour ce que cela vaut, j'utilise le jeu de couleurs lucius avec vim 7.3 pour éditer un ensemble de fichiers python.

29voto

brice Points 2306

Tel que expliqué ici et ici, vous pouvez régler ce problème en désactivant Background Color Erase. Modifiez votre .vimrc :

if &term =~ '256color'
    " Désactivez Background Color Erase (BCE) afin que les thèmes de couleur
    " fonctionnent correctement lorsque Vim est utilisé à l'intérieur de tmux et GNU screen.
    set t_ut=
endif

Vous pouvez également taper Ctrl+L pour réinitialiser l'écran.

0voto

Kwangalala Points 31

Cela peut être lié à un plugin ou à une configuration, essayez peut-être

vim -u NONE

pour charger vim sans le vimrc et sans plugins et voir si le problème persiste.

En ce qui concerne la configuration, je pense que vous devriez probablement regarder lazyredraw et ttyfast.

Vous pouvez lire la documentation en tapant (:help lazyredraw) et découvrir si vous l'avez défini sans le savoir (:set lazyredraw?) et probablement le désactiver (:set nolazyredraw).

Et ça peut aider si vous définissez ttyfast (:help ttyfast).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X