2013-03-21 18 views
5

sto usando emacs 24.3 su Windows 8. Ho installato il tema del colore solarizzata dal repository marmellata, e sono in grado di impostare utilizzando M + xload-theme. Imposta anche per la sessione corrente quando utilizzo Customize, ma non si carica quando apro di nuovo emacs.Emacs per Windows errore di caricamento colore del tema

Posso aprire il menu di personalizzazione e selezionare il tema, ma il salvataggio delle modifiche non fa nulla e nulla cambia tra quello e la mia prossima sessione. Ho esaminato diverse domande sui temi dei colori, ma la maggior parte non si applica a Emacs 24, dal momento che non ho bisogno di usare color-theme per farlo.

Di seguito è riportato uno snippet dal mio file .emacs.

(custom-set-variables 
    '(custom-enabled-themes (quote (solarized-dark))) 
    '(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" default))) 
... 

Quando provo a mettere (load-theme 'solarized-dark t) nel mio .emacs, ottengo l'errore:

error: Unable to find theme file for `solarized-dark' 

Ho controllato il valore della custom-theme-load-path dopo l'apertura emacs e comprende l'ELPA directory utilizza per memorizzare il tema solarizzato. Come detto sopra, posso caricare manualmente il tema, ma qualcosa sul caricamento durante init si sta interrompendo.

risposta

14

Basta aggiungere

(pacchetto-inizializzazione)

Per la parte superiore del vostro file .emacs e siete a posto.

+0

Questo non aggiunge temi to 'custom-theme-load-path' – ocodo

+0

@Slomojo Temi di colore distribuiti come pacchetti di solito aggiornano' custom-theme-load-path' quando caricato. Il tema in questione [lo fa] (https://github.com/bbatsov /solarized-emacs/blob/3c343dbbccc961947c6e6f24e32599aaf1f5ff65/solarized.el#L995). – lunaryorn

+0

Il problema è che "di solito" non ha nulla a che fare con 'package.el' è completamente dall'autore del tema. – ocodo

0

Nota a margine: se l'autore tema si è preso cura di esso, il tema sarà in sé aggiungere al custom-theme-load-path, tuttavia questo non è una parte della deftheme ed è fino ai singoli autori tema di attuazione questo comportamento.

per risolvere il problema, ho fatto un rapido frammento di emacslisp che troverà pacchetti con tema nel loro nome, poi aggiungerli al custom-theme-load-path all'avvio.

Basta aggiungere vicino alla parte superiore del vostro ~/.emacs o ~/.emacs.d/init.el (es. Prima di load-theme

Ha dipendenze s.el e dash.el (entrambi disponibili sul ELPA)

(require 'dash) 
(require 's) 

(-each 
(-map 
    (lambda (item) 
    (format "~/.emacs.d/elpa/%s" item)) 
    (-filter 
    (lambda (item) (s-contains? "theme" item)) 
    (directory-files "~/.emacs.d/elpa/"))) 
(lambda (item) 
    (add-to-list 'custom-theme-load-path item))) 
+0

Questo snippet è essenzialmente superfluo: i pacchetti di temi dovrebbero davvero aggiornare 'custom-theme-load-path' stessi, tramite i caricamenti automatici, per essere disponibili subito dopo' (package-initialize) '. – lunaryorn

+0

Should e DO sono due cose diverse, non lo sono, è fastidioso, quindi script. – ocodo

+0

Se un tema non lo fa, dovrebbe essere segnalato al suo autore come un bug. – lunaryorn

Problemi correlati