2012-03-05 10 views
6

Nie jestem pewien jak to się stało, ale calc już nie działa. Zawsze, gdy próbuję go uruchomić, uzyskać:Automatyczne ładowanie nie udało się zdefiniować funkcji calc-dispatch

Autoloading failed to define function calc-dispatch

To działa dobrze w zeszłym tygodniu i używam wbudowanego w Calc, więc nie mam pojęcia, co się zmieniło, aby zapobiec jego pracy. Uruchomiłem lgrep na kopii katalogu calc szukając calc-dispatch i znalazłem calc-dispatch po prostu dobrze. Czy moje pliki .elc mogą zostać uszkodzone?

Kiedy próbowałem je skompilować, mam rzeczy jak:

calc-fin.el:29:1:Error: Required feature `calc' was not provided

+0

To brzmi trochę tak, jak własne katalogi lisp Emacsa nie są już na swojej ścieżce ładowania. Ale byłbym zaskoczony, gdyby * cokolwiek * działało, gdyby tak było, chyba że system plików zmienił się podczas działania Emacsa? Zakładam, że dzieje się tak podczas uruchamiania nowej instancji Emacsa? Przypuszczam, że powinieneś sprawdzić problemy z uprawnieniami na plikach calc *. – phils

Odpowiedz

7

Zagadnienie to było domyślnym Calc calc-settings-file nazywa calc.el domyślnie. Po zapisaniu moich dostosowań calc.el w katalogu .emacs.d zablokowały calc.el w /usr/share/emacs/lisp/calc/, ponieważ mam .emacs.d w mojej ścieżce ładowania. Przeniesienie zawartości tego pliku na mój numer init.el i usunięcie go rozwiązało problem. Wysłałem e-mail do opiekuna o problemie i otrzymałem bardzo szybką i ostrą odpowiedź wyjaśniającą problem.

+0

Chociaż nie zrobiłoby to różnicy w tym przypadku, weź '~/.emacs.d' z' load-path', jeśli jeszcze tego nie zrobiłeś (twórcy Emacsa stwierdzili, że to zły pomysł) i zamiast tego użyj podkatalogu. – phils

+3

Używam 'my-' jako przedrostka dla wszystkich moich niestandardowych lispów (bez względu na to, czy są to pliki, funkcje czy zmienne) w celu uniknięcia kolizji przestrzeni nazw. Polecam robić coś podobnego. – phils

Powiązane problemy