2009-03-24 8 views
9

Sto usando emacs in una finestra della console sia sulla mia Linux box locale che sul nodo di login di un cluster remoto. Io uso emacs regolarmente, e ho il colore di primo piano impostato su bianco nei miei .emacs file in questo modo:Emacs/xterm coloryyyance su Linux

(set-foreground-color "white") 
(set-background-color "black") 

Tuttavia, quando si esegue Emacs, il primo piano non è bianco; è grigio e molto difficile da leggere. Sul mio Mac, emacs in una finestra della console con le stesse impostazioni si presenta come bianco appropriato. Ma su entrambe le finestre di Linux, in konsole e xterm, è grigio.

Nel caso abbia importanza, ho TERM impostato su xterm-color, il desktop sta eseguendo RHEL 5 e il nodo del cluster sta eseguendo RHEL 4 (CentOS).

Questo è un valore predefinito con il modo in cui Linux imposta i colori del terminale? Come faccio a rendere bianco il bianco?

Nota: questo è con emacs console, non emacs sotto X. Questo è emacs -nw se avete DISPLAY set.

risposta

11

Il colore brightwhite sembra ok sul mio Emacs (che è in esecuzione in un terminale, senza X). Su RHEL5 ho la mia variabile di ambiente TERM impostata su xterm-256color. Se funziona correttamente, dovresti essere in grado di eseguire these scripts e vedere l'output a 256 colori. Sotto Emacs, dovresti vedere una rampa di colori ragionevolmente uniforme (senza colori ovviamente duplicati) quando fai M-x list-colors-display.In caso contrario, probabilmente manca la voce termcap corretta (prova a installare il pacchetto libtermcap-devel, penso).

Se cambio TERM-xterm-color, quindi brightwhite viene fuori un po 'grigio nell'output del list-colors-display.

Non sono sicuro di RHEL4.

1

Sembra che tu stia solo impostando il colore di primo piano.

(set-foreground-color "white") 
(set-foreground-color "black") 

Sono sicuro che significava set-background-color su quest'ultimo.

posso confermare questo durante l'esecuzione di Emacs come:

$ emacs -nw -bg black -fg white 

troppo.

+0

scusate è stato un errore di battitura! Aggiornato sopra. – tgamblin

+0

Questo non dovrebbe essere stato down-votato. Era una risposta basata sulla domanda di errore del PO. –

+0

Grazie per la difesa. – ashawley

2

Che dire:

(set-foreground-color "brightwhite") 

In risposta a commentare:

all'interno di Emacs, gestito M-x list-colors-display che dovrebbe mostrare tutti i colori che Emacs pensa sono disponibili con il terminale.

+0

Funziona per te? L'ho provato, ma mi dà i menu e le barre di stato in nero e il testo viene visualizzato come colore di primo piano predefinito dal mio terminale (che è verde). Forse non ho "brightwhite" – tgamblin

+0

Risposta aggiornata –

1

ho fatto alcuni esperimenti, ed è possibile impostare i colori della console in emacs, ma si sono limitati a questa palette:

black     blue           
cyan      green           
magenta     red           
white     yellow  

L'bianca che si ottiene è un po 'grigio; il pieno bianco è riservato per il testo in grassetto. Quindi, se si esegue

M-x facemenu-set-bold 

otterrete grassetto testo (bianco luminoso) per inserimenti successivi.

Non ho avuto fortuna a cercare di forzare la faccia predefinita in grassetto. (Non capisco davvero come funzionano le facce in emacs.)

+0

"ma sei limitato a questa tavolozza" - Questo non è proprio vero, emacs supporta 256 colori assumendo che il tuo terminale sia configurato correttamente. Vedi screenshot @ http://seanbright.com/e256.png –

+0

@Sean: prendi un po 'di reputazione su http://stackoverflow.com/questions/684424/how-do-i-set-up-my-linux-x -Terminal-so-che-emacs-ha accesso a 256-colori –

2

E se fosse sufficiente l'uso del video inverso per la versione da console è abbastanza buono?

$ emacs -nw -rv 
1

Inoltre, ho trovato che avevo colori strani in modalità terminale e infine l'ho tracciato fino alla personalizzazione di un font. Ho avuto qualcosa di simile:

(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"))))) 

ho tolto le proprietà primo piano e sfondo e tutto iniziato a guardare rose e fiori.