Emacs / contrariété couleur xterm sur Linux
Question
J'utilise emacs dans une fenêtre de la console à la fois sur ma boîte de Linux local et sur le nœud de connexion d'un cluster à distance. J'utilise emacs régulièrement, et j'ai la couleur de premier plan mis à blanc dans mon fichier .emacs comme ceci:
(set-foreground-color "white")
(set-background-color "black")
Cependant, quand je lance emacs, le premier plan est pas blanc; il est gris et très difficile à lire. Sur mon Mac, emacs dans une fenêtre de console avec les mêmes paramètres apparaît en blanc approprié. Mais sur les deux boîtes de Linux, dans konsole et xterm, il est gris.
Dans le cas où il importe, j'ai mis à xterm TERM
couleurs, le bureau est en cours d'exécution RHEL 5, et le nœud de cluster est en cours d'exécution RHEL 4 (CentOS).
Est-ce une valeur par défaut avec la façon dont Linux met en place des couleurs du terminal? Comment puis-je obtenir blanc à blanc?
Remarque: est avec emacs console, pas emacs sous X. C'est si vous avez emacs -nw
ensemble DISPLAY
La solution
La couleur semble correct sur brightwhite
mon Emacs (qui est en cours d'exécution sous un terminal, et non X). Sur RHEL5 j'ai mon ensemble variable d'environnement TERM
à xterm-256color
. Si elle fonctionne correctement, vous devriez être en mesure d'exécuter ces scripts et voir 256 couleurs sortie. Sous Emacs, vous devriez voir une rampe de couleur raisonnablement lisse (pas de couleurs évidemment en double) lorsque vous faites M-x list-colors-display
. Sinon, vous manque probablement la bonne entrée de termcap (essayez d'installer le package libtermcap-devel
, je pense).
Si je change à xterm-color
list-colors-display
, puis sort un <=> peu gris dans la sortie de <=>.
Je ne suis pas sûr RHEL4.
Autres conseils
Qu'en est-il:
(set-foreground-color "brightwhite")
En réponse au commentaire:
Dans emacs, exécutez ce qui devrait vous M-x list-colors-display
montrer toutes les couleurs qui emacs pense sont disponibles avec votre terminal.
Que faire si vous venez d'utiliser inverse vidéo pour la version console est-ce suffisant?
$ emacs -nw -rv
On dirait que vous définissez seulement la couleur de premier plan.
(set-foreground-color "white")
(set-foreground-color "black")
Je suis sûr que vous vouliez dire sur ce dernier set-background-color
.
Je peux le confirmer lors de l'exécution Emacs:
$ emacs -nw -bg black -fg white
aussi.
Je l'ai fait quelques expériences, et vous pouvez définir les couleurs de la console dans emacs, mais vous êtes limité à cette palette:
black blue
cyan green
magenta red
white yellow
Le blanc que vous obtenez est un peu grisés; plein blanc brillant est réservé pour le texte en gras. Donc, si vous exécutez
M-x facemenu-set-bold
vous obtiendrez le texte en gras (blanc brillant) pour les insertions ultérieures.
Je n'avais pas la chance d'essayer de forcer le visage par défaut en gras. (Je ne comprends pas vraiment comment le travail fait face à emacs.)
Je trouve aussi que j'avais des couleurs étranges en mode terminal et enfin tracé vers le bas pour une personnalisation du visage de la police. J'ai eu quelque chose comme ceci:
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "#000a00" :foreground "#ffffed" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "unknown" :family "Droid Sans Mono")))))
J'ai enlevé les propriétés de premier plan et arrière-plan et tout a commencé à chercher Hunky Dory.