8 votes

Artéfact de rendu bizarre dans vim (terminal, pas MacVim)

Sous Mac OS X, en utilisant soit Terminal.app soit iTerm2, il y a un artefact étrange avec le rendu des personnages que j'ai du mal à expliquer et encore plus de mal à comprendre. Je vais commencer par une vidéo de mon écran pour que vous puissiez voir un exemple de ce phénomène en action :

Strange terminal vim rendering

À partir de la vidéo, vous pouvez voir quelques façons dont il est bizarre, par exemple, parfois, lorsque je frappe une lettre en mode insertion, le caractère est imprimé en double. Lorsque je passe en mode normal, l'artefact reste. Lorsque je reviens en mode insertion, le fait d'appuyer sur le retour arrière copie les caractères de gauche à la position située sous le curseur.

Cela s'est produit dans OS X Lion et Mountain Lion, sous Terminal.app et iTerm 2. Cela ne se produit jamais sous MacVim.

De plus, j'utilise GNU/Linux sur mon autre machine, et cela ne m'est jamais arrivé. Je suis presque sûr que c'est un problème strictement lié à Mac OS X, mais je ne sais pas comment le résoudre. Pendant un certain temps, j'ai contourné le problème en utilisant MacVim la plupart du temps, mais je préfère travailler dans un terminal.

Quelqu'un sait-il ce qui se passe ici, et si oui, comment puis-je le réparer ?

EDIT : J'ai essayé d'utiliser l'exécutable macvim Vim, et j'obtiens toujours des artefacts étranges, mais ils sont localisés sur le côté gauche de l'écran, voici un exemple :

enter image description here

0voto

Jason Bunting Points 27534

Je ne sais pas si vous avez la ligne suivante dans votre ~/.vimrc ?

set list listchars=tab:\ \ ,trail:

Essayez de le commenter avec un " au début de la ligne et redémarrer vim.

Je l'ai récupéré dans le dépôt dotfiles de quelqu'un et je n'ai pas eu l'occasion de chercher pourquoi il pose problème.

J'utilise iTerm2. Mon $TERM es xterm . J'espère que cela vous aidera.

0voto

someguy Points 2282

Cela peut être lié à l'obtention de la branche Git à mettre dans la ligne d'état en utilisant la fonction suivante dans le fichier ~/.vimrc :

system("git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* //'")`

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