2013-08-14 3 views
5

Je suis en train de configurer emacs pour être mon IDE GO en suivant ce tutorial avec ce . J'avoir des problèmes quand je dois avoir emacs générer un fichierEmacs mise à jour-fichier-autoloads échouant

depuis Emacs, exécutez update-file-Mx charge automatiquement, pointez le fichier go-mode.el et lui dire de générer un aller -mode-load.el fichier.

Je reçois cette erreur quand je rentre le chemin du fichier (emplacement ~/.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 

Je l'ai fait une locate sur ce dossier et voir j'ai mais pas le chemin spécifié de chemin ci-dessus

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

Si je devais deviner je dirais une sorte de problème de chemin. Dois-je définir une variable de chemin quelque part?

J'ai installé emacs par apt-get install emacs23

Je suis sur Ubuntu 12.04

Merci

EDIT

Le processus que je fais pour obtenir l'erreur.

  1. M-x update-file-autoloads Entrez

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

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

+0

Comment appelez-vous la mise à jour-fichier-charge automatiquement? Il semble que vous essayez d'écrire les autoloads dans le fichier/build/.... Ce que vous devez faire est d'écrire un nouveau fichier de chargement automatique, pas de mettre à jour ou d'écraser un fichier existant. Lorsque j'exécute M-x update-file-autoloads et le pointe vers un fichier, il me demande où je veux écrire le résultat. Cela ne vous arrive-t-il pas? – seanmcl

+0

Non, on ne me demande pas d'écrire un résultat. juste l'invite «Mettre à jour automatiquement les fichiers pour le fichier:», puis l'erreur – Jeff

+0

Existe-t-il une définition locale de 'fichier-autoload-generated 'dans go-mode.el? – seanmcl

Répondre

1

(Pas une réponse, mais a besoin d'un formatage) Existe-t-il une définition locale de `generated-autoload-file 'dans go-mode.el? Si oui, il écrira là, donc vous devez supprimer cette ligne.


;; update-file-autoloads docs

update-file-autoloads est une fonction Lisp compilée interactive dans `autoload.el '.

(update-fichier-FICHIER & en option charge automatiquement SAVE-APRÈS OUTFILE)

Mettre à jour le fichier. Pour charge automatiquement Si le préfixe arg SAVE-AFTER est non nul, enregistrez également le tampon.

Si FILE lie 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 généré-autoload-file '.

Retourne le fichier s'il n'y avait pas de cookie de chargement automatique, sinon nul.

2

J'ai eu le même problème et j'ai finalement réussi à le faire fonctionner.Ouvrez votre tampon de zéro (ou tout autre fichier vide) et tapez les deux lignes suivantes

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

évaluer ensuite les deux lignes en plaçant le curseur à puis de chaque ligne et tapez C-x C-e pour évaluer la ligne avant le curseur. Faites ceci pour les deux lignes. Ensuite, assurez-vous d'ouvrir go-mode-load.el et enregistrez le tampon - apparemment, emacs ne le fait pas par défaut.

fois que vous avez fait cela, vous pouvez continuer à suivre les instructions à http://www.honnef.co/posts/2013/03/writing_go_in_emacs/

Disclaimer: Je suis sûr qu'il ya une meilleure façon de le faire et les experts Lisp vont hurler à ma réponse. Je n'ai aucune idée de lisp et comment utiliser lisp dans emacs. Je viens de faire une conjecture informée :-)

2

Tout récemment, j'ai essayé ceci en essayant d'obtenir go-mode.el mis en place sur mon pi de framboise. Heureusement, j'avais déjà généré un fichier go-mode-load.el avec succès sur mon Mac et j'ai pu y jeter un coup d'œil.

Là-dedans, j'ai vu ce commentaire:

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

Je cd « ed dans le répertoire où je l'avais téléchargé go-mode.el, puis touch ed un nouveau fichier appelé go-mode-load.el, l'ouvrit en emacs, collé dans ce ligne de code, l'a évalué avec C-x C-e et cela a fonctionné comme un charme.

EDIT

n'a pas pu obtenir le fichier généré travail jusqu'à ce que j'ajouté ces lignes à la fin. Au moment d'écrire ce que je ne l'ai pas pris le temps de comprendre pourquoi ils sont nécessaires, mais en les ajoutant résolu le problème:

(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

Commander les instructions d'installation réelles du go-mode-el GitHub webpage. Il semble qu'il y ait eu quelques changements qui ne sont pas reflétés dans le tutoriel.

Juste essayer d'utiliser soit ELPA ou suivez les instructions du manuel:

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