2012-05-01 16 views
8
~/.emacs 

;; http://cx4a.org/software/auto-complete/manual.html 
(add-to-list 'load-path "~/.emacs.d/") 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") 
(ac-config-default) 

po załadowaniu emacs, narzeka na błąd jako "Zła liczba argumentów: wywołana-interakcyjnie-p, 1". Innymi słowy, emacs znajduje błąd aż do linii (ac-config-default).Niewłaściwa liczba argumentów: wywołana-interakcyjnie-p, 1

kiedy sprawdzam plik .emacs.d/auto-complete.elc, znalazłem ciąg "call-interactively-p".

Pytanie> Użyłem tego samego ustawienia dla ubuntu bez problemów. Teraz przełączam centos 6.2. Czy istnieje sposób, aby rozwiązać ten problem?

Emacsa --debug-startowych pokazuje następujące błędy:

+0

Nie wkleiłeś poprawnie komunikatu o błędzie. –

+0

Jeśli masz to samo .emacs z tą samą wersją auto-complete-config, domyślam się, że masz różne wersje Emacsa na dwóch komputerach. Co mówi emacs-wersja M-x na obu komputerach? – Tyler

+0

Podstawową różnicą jest to, że jedna działa na najnowszej wersji Ubuntu, a druga działa na najnowszej wersji centos. Wersja emacsa jest najnowsza – q0987

Odpowiedz

3

w ostatnich Emacsen, called-interactively-p wymaga argumentu.

Czy C-H f ac-szybkiej pomocy RET, a następnie zastąpić (called-interactively-p) przez (called-interactively-p 'any) i rekompilacji/reload. Lub wyślij ten błąd do autora paczki.

2

[Jak wspominałem ostatnio w jakimś innym pytanie stackoverflow, jest silnie nie zaleca się umieścić „~/.emacs.d” w load-path ponieważ katalog ~/.emacs.d może/będzie posiadających plików konfiguracyjnych którego nazwa koliduje z prawdziwymi pakietami emacs. To znaczy. umieść pliki autouzupełniania w katalogu * sub * ~/.emacs.d. ]

Twój błąd wygląda bardzo dziwnie: podczas gdy called-interactively-p jest zadeklarowany w Emacs-23 jako przyjmujący dokładnie 1 argument, to faktycznie przyjmuje również 0 argumentów (aby złagodzić ból dla zewnętrznych pakietów, które chcą obsługiwać zarówno Emacs-22 jak i Emacs-23). Wygląda na to, że jest to coś innego w twojej konfiguracji, która w jakiś sposób redefiniuje wywołanie-interactive-p.

+0

Czy warto mieć automatyczny komunikat ostrzegawczy, jeśli ścieżka obciążenia kończąca się na "/.emacs.d" jest obserwowana, jako środek zapobiegawczy przeciwko temu rodzajowi problemu? – phils

12

Warto wspomnieć, że ten błąd może powstać, jeśli przenosisz swój katalog emacs.d z jednego komputera na drugi.

W takim przypadku usunięcie skompilowanych plików * .elc powinno wystarczyć.

+0

To zadziałało dla mnie. :) – Lazylabs

+0

to również naprawiło mój problem - dodano do mojej .gitignore na przyszłość. – sjmarshy

+0

tak działa, 'make clean' i' make' ponownie –

Powiązane problemy