J'ai essayé de faire de la coloration syntaxique (256 couleurs) de l' vim
travail à l'intérieur d' screen
, ce qui est en cours d'exécution à l'intérieur d' gterm
.
Il fonctionne très bien dans le début. Ce que je veux dire par "au commencement" est, après je démarre screen
, et entrez vim
, les couleurs ont l'air très bien, et il y a vraiment de 256 couleurs.
Mais après un certain temps (je ne sais pas exactement combien de temps), les couleurs changent automatiquement en arrière à une apparition comme s'il y a seulement 8 (ou 16?) couleurs.
Par exemple, après que cela a déjà eu lieu si je entrer la commande
hi Comment ctermfg=68
à l'intérieur d' vim
, les commentaires semblent être "pur" vert; cependant, si j'ouvre un autre vim
en dehors de l'écran (dans le terminal), puis avec la même commande que les commentaires apparaissent à être un "jaunâtre" vert.
Ce qui suit est mon .screenrc paramètres liés à la couleur:
attrcolor b ".I"
defbce "on"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
term xterm-256color
Après l'exécution d'un script python pour l'affichage de toutes les couleurs, je trouve que c'est peut-être un problème de l'écran lui-même, et n'a rien à voir avec vim.
Ce que j'ai fait est, à l'intérieur de l' screen
session avec des problèmes, ce script donne 256 couleurs, mais beaucoup d'entre eux sont en fait les mêmes; cependant, lorsque je commence une nouvelle session écran avec la même configuration, ce script donne 256 couleurs qui sont distinctes les unes des autres.
Edit:
La nuit dernière je me suis connecté à mon ordinateur sous Linux (qui est dans mon bureau et il est toujours), avec des putty
, puis a ouvert un screen
session avec plusieurs fenêtres en elle. Les couleurs sont correctes, la nuit dernière. Alors avant que je suis allé dormir, je l'ai détaché l' screen
session et fermés putty
.
Maintenant, le matin, quand je l'attacher screen
session putty
encore une fois, les couleurs de collision: ils apparaissent comme si il y a seulement 8 couleurs.
Les couleurs sont très bien en dehors de screen
(mais encore en putty
).
Edit:
Trois ans plus tard, après que j'ai posé cette question, aujourd'hui j'ai vu un problème similaire. Le problème est qu' vim
pouvez afficher 256 couleurs hors - screen
, et screen
pouvez afficher 256 couleurs avec un script de test, mais vim
ne peut pas afficher n'importe quelle couleur (peut uniquement afficher en noir et blanc) à l'intérieur d' screen
. Juste une remarque à moi-même, ici est l' .screenrc
le fichier, je suis en utilisant
hardstatus alwayslastline "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %Y-%m-%d %c"
shell "bash"
startup_message off
vbell off
altscreen on
attrcolor b ".I"
defbce "on"
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
term screen-256color
La solution à ce problème est déjà mentionné dans l'acceptation de réponse, à savoir, j'ai besoin d'inclure
export TERM=xterm-256color
en .bashrc
.