2013-08-14 8 views
5

Próbuję skonfigurować emacs, aby był moim GO IDE, podążając za tym tutorial tym . Występują problemy, gdy muszę emacs generować plikEmacs update-file-autoloads failing

Z poziomu Emacsa, uruchom Mx update-file-autoloads, skieruj go do pliku go-mode.el i powiedz, żeby wygenerował plik -mode-load.el plik.

otrzymuję ten błąd, gdy wprowadź ścieżkę do pliku (lokalizacja ~/.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 

Zrobiłem locate na tym pliku i zobacz, mam go, ale nie w określonej ścieżce powyżej

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

Gdybym musiał zgadnąć, powiedziałbym, że jest jakiś problem z drogą. Czy muszę gdzieś ustawić zmienną ścieżki?

zainstalowałem emacsowi przez apt-get install emacs23

jestem na Ubuntu 12.04

Dzięki

EDIT

Proces robię, aby uzyskać ten błąd.

  1. M-x update-file-autoloads Wprowadź

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

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

+0

Jak dzwonisz aktualizacja-file-autoloads? Wygląda na to, że próbujesz napisać autoloady do pliku w/build/.... To, co musisz zrobić, to napisać nowy plik automatycznego ładowania, a nie aktualizować lub zastępować istniejącego. Kiedy uruchomię M-x update-file-autoloads i skieruję go do pliku, zapyta mnie, gdzie chcę napisać wynik. Czy to się nie dzieje? – seanmcl

+0

Nie Nie jestem proszony o zapisanie wyniku. po prostu monit 'Aktualizuj automatyczne ładowanie dla pliku:' następnie błąd – Jeff

+0

Czy istnieje lokalna definicja 'wygenerowanego pliku autoload 'w go-mode.el? – seanmcl

Odpowiedz

1

(nie odpowiedź, ale wymaga formatowania) Czy istnieje lokalna definicja `wygenerowanego pliku autoload 'w go-mode.el? Jeśli tak, napisze tam, więc musisz usunąć tę linię.


;;; update-file-autoloads docs

update-file-autoloads to interaktywnie skompilowana funkcja Lisp z `autoload.el '.

(update-file-autoloads FILE & opcjonalne SAVE-PO plik_wy)

zaktualizować autoloads do pliku. Jeśli przedrostek arg SAVE-AFTER jest równy zeru, zapisz także bufor.

Jeśli FILE wiąże 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 wygenerowany plik autoload ".

Zwróć FILE, jeśli nie było w nim automatycznego pliku cookie, w przeciwnym razie nie ma.

2

Miałem ten sam problem i w końcu zadziałało.Otwórz swój bufor na zarysowania (lub dowolny inny pusty plik) i typ w dwóch liniach

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

Następnie ocenia obie linie umieszczając kursor na czym każdej linii i rodzaju w C-x C-e ocenić linię przed kursorem. Zrób to dla obu linii. Następnie upewnij się, aby otworzyć go-mode-load.el i zapisać bufor - najwyraźniej emacs nie robi tego domyślnie.

Po wykonaniu tego można nadal postępować zgodnie z instrukcjami na http://www.honnef.co/posts/2013/03/writing_go_in_emacs/

Disclaimer: Jestem pewien, że istnieje lepszy sposób to zrobić i LISP ekspertów będzie krzyczeć na moją odpowiedź. Nie mam pojęcia o seplenieniu i używaniu seplenienia w emacs. Właśnie zgadłem :-)

2

Niedawno uderzyłem w to, próbując uruchomić go-mode.el na moim raspberry pi. Na szczęście już udało mi się wygenerować plik go-mode-load.el na moim Macu i mogłem na to spojrzeć.

Tam widziałem ten komentarz:

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

Więc cd „ed do katalogu, w którym miałem pobranego go-mode.el, następnie touch ed nowy plik o nazwie go-mode-load.el, otworzył go w emacs, wklejany w które linia kodu, ocenił go za pomocą C-x C-e i działał jak czar.

EDIT

nie był w stanie uzyskać wygenerowany plik roboczy aż Dodałem te linie do końca. Jak pisać to, że nie miały czasu, aby dowiedzieć się, dlaczego są one potrzebne, ale dodanie ich rozwiązaniu problemu:

(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

kasę rzeczywiste instrukcje instalacyjne z go-mode-el GitHub webpage. Wygląda na to, że wprowadzono pewne zmiany, których nie uwzględniono w samouczku.

prostu spróbuj użyć ELPA lub postępuj zgodnie z instrukcjami Manual:

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