2013-08-14 18 views
5

Sto provando a configurare emacs come GO IDE seguendo questo tutorial con questo . Sono in esecuzione in problemi quando devo avere emacs generare un fileEmacs update-file-autoloads fallito

Dall'interno di Emacs, eseguire Mx update-file-autocaricamenti, puntarlo verso il file go-mode.el e dire per generare un andare -mode-load.el file.

ottengo questo errore quando entro nel percorso del file (posizione ~/.emacs.d/go-mode/go-mode.el)

Opening output file: no such file or directory, /build/buildd/emacs23-23.3+1/debian/build-x/lisp/loaddefs.el 

Ho fatto un locate su questo file e vedere io ho, ma non nel percorso specificato percorso precedente

$ locate loaddefs.el 
/usr/share/emacs/23.3/lisp/loaddefs.el 
... 

Se dovessi indovinare, direi un qualche tipo di problema di percorso. Devo impostare una variabile di percorso da qualche parte?

ho installato emacs attraverso apt-get install emacs23

Sono su Ubuntu 12.04

Grazie

EDIT

Il processo che sto facendo per ottenere l'errore.

  1. M-x update-file-autoloads Enter

  2. Update autoloads for file: ~/.emacs.d/go-mode/go-mode.el Inserisci

Opening output file: no such file or directory, /build/buildd/emacs23-23.3+1/debian/build-x/lisp/loaddefs.el

+0

Come stai chiamando update-file-autocaricamenti? Sembra che tu stia cercando di scrivere i caricamenti automatici sul file in/build/.... Quello che devi fare è scrivere un nuovo file di caricamento automatico, non aggiornare o sovrascrivere quello esistente. Quando eseguo M-x update-file-autoloads e lo inserisco in un file, mi chiede dove voglio scrivere il risultato. Non ti succede? – seanmcl

+0

No, non mi viene chiesto di scrivere un risultato. solo il messaggio "Aggiorna caricamenti automatici per file:' quindi l'errore – Jeff

+0

Esiste una definizione locale di "generato-autoload-file" in go-mode.el? – seanmcl

risposta

1

(non una risposta, ma ha bisogno di formattazione) Esiste una definizione locale di `generate-autoload-file 'in go-mode.el? Se è così, scriverà lì, quindi è necessario rimuovere quella linea.


;; update-file-autoloads doc

update-file-autoloads è una funzione Lisp compilata interattiva in `autoload.el '.

(update-file-autocaricamenti FILE & opzionali SALVA-AFTER OUTFILE)

Aggiornare i autocaricamenti per il file. Se il prefisso arg SAVE-AFTER è diverso da zero, salva anche il buffer.

Se FILE associa generated-autoload-file' as a file-local variable, autoloads are written into that file. Otherwise, the autoloads file is determined by OUTFILE. If called interactively, prompt for OUTFILE; if called from Lisp with OUTFILE nil, use the existing value of generato-autoload-file '.

Restituire FILE se non ci fosse alcun cookie di caricamento automatico, altrimenti nullo.

2

Ho avuto lo stesso problema e finalmente ho funzionato.Aprire il buffer zero (o qualsiasi altro file vuoto) e digitare le seguenti due righe

(setq generated-autoload-file "~/.emacs.d/go-mode/go-mode-load.el") 
(update-file-autoloads "~/.emacs.d/go-mode/go-mode.el") 

Poi valutare entrambe le linee mettendo il cursore quindi di ogni linea e digitare C-x C-e per valutare la riga prima del cursore. Fallo per entrambe le linee. Quindi assicurati di aprire go-mode-load.el e salvare il buffer: apparentemente, emacs non lo fa per impostazione predefinita.

Una volta fatto questo è possibile continuare a seguire le istruzioni a http://www.honnef.co/posts/2013/03/writing_go_in_emacs/

Disclaimer: io sono sicuro che ci sia un modo migliore per fare questo e gli esperti Lisp si strillare alla mia risposta. Non ho idea di lisp e come usare il lisp in emacs. Ho appena fatto un'ipotesi informata :-)

2

Proprio di recente ha colpito questo durante il tentativo di ottenere go-mode.el istituito sul mio raspberry pi. Fortunatamente, avevo già generato un file go-mode-load.el sul mio Mac e sono riuscito a dare un'occhiata a questo.

In lì ho visto questo commento:

;; To update this file, evaluate the following form 
;; (let ((generated-autoload-file buffer-file-name)) (update-file-autoloads "go-mode.el")) 

Così ho cd 'ed nella directory dove avevo scaricato go-mode.el, poi touch Ed un nuovo file chiamato go-mode-load.el, lo aprì in emacs, incollato in quel linea di codice, valutato con C-x C-e e ha funzionato come un fascino.

EDIT

non era in grado di ottenere il file generato a lavorare fino a quando ho aggiunto queste righe alla fine. Al momento di scrivere questo non ho avuto il tempo di capire il motivo per cui sono necessari, ma l'aggiunta di loro ha risolto il problema:

(provide 'go-mode-load) 
;; Local Variables: 
;; version-control: never 
;; no-byte-compile: t 
;; no-update-autoloads: t 
;; coding: utf-8 
;; End: 
;;; go-mode-load.el ends here 
0

Checkout le istruzioni di installazione reale dal go-mode-el GitHub webpage. Sembra che siano stati apportati alcuni cambiamenti che non si riflettono nel tutorial.

solo cercare di usare sia l'ELPA o seguire le istruzioni del manuale:

(add-to-list 'load-path "/place/where/you/put/it/") 
(require 'go-mode-autoloads)