2011-07-01 4 views
12

Les schémas de couleur dans emacs mode shell apparaissent comme des couleurs primaires (haute saturation) et l'aspect primitif, et certaines couleurs, par exemple, violet, ne semblent pas:Réglage des couleurs en mode shell

enter image description here

I vouloir ajuster les couleurs afin qu'ils utilisent des couleurs plus intermédiaires et un aspect plus doux comme dans gnome-terminal:

enter image description here

Comment puis-je modifier les schémas de couleurs en mode shell? Je n'ai pas pu trouver d'affectations de police liées au mode shell dans emacs, et c'est probablement parce que la couleur est donnée par le shell et est différente des autres assignmets de police dans emacs.

Répondre

16

Lorsqu'un programme géré à l'intérieur des problèmes shell en mode ANSI caractères d'échappement pour définir la couleur d'affichage, par exemple, magenta, Emacs intercepte ces caractères d'échappement et crée une superposition colorée en utilisant cette couleur de premier plan exacte "magenta". Donc, il n'y a pas d'interaction de thème de couleur qui se passe ici, et aucune personnalisation spécifique au shell à rechercher.

L'interception est faite par les fonctions ansi-color.el, cependant, et il semble que vous pouvez personnaliser ansi-color-names-vector, afin d'utiliser « PaleBlue » pour « bleu », soit M-x customize RET ansi-color-names-vector, ou essayer de mettre quelque chose comme ce qui suit dans votre config emacs :

(setq ansi-color-names-vector 
    ["black" "red" "green" "yellow" "PaleBlue" "magenta" "cyan" "white"]) 

Pour voir les noms de couleurs disponibles, utilisez M-x list-colors-display, ou entrer dans des couleurs hexagonales au lieu, par exemple, "#ccccff".

+0

Merci. Cela a fonctionné. Il a résolu un problème que j'avais depuis longtemps. – sawa

1

Certains color-themes sont conçus pour être esthétiques dans le terminal. Si aucun d'entre eux ne convient, vous pouvez utiliser un point de départ pour votre propre thème. Je choisis le thème approprié pour X/terminaux comme celui-ci:

(if (eq (window-system) 'x) 
    (color-theme-gray30) 
    (color-theme-emacs-nw)) 
+0

Je pense que vous envisagez d'exécuter emacs dans le terminal. Ce n'est pas ce que je demande. Je cours un terminal dans emacs. – sawa

+0

Ah, n'a pas lu correctement. – jaybee

Questions connexes