2009-05-14 17 views
23

W jaki sposób uzyskać emacs, aby poinformować mnie o lokalizacji załadowanego pliku .emacs?Jak znaleźć, który plik .emacs został załadowany?

Moja sytuacja jest prosta, kiedy robię sudo emacs, ładuje się bardzo inny plik .emacs niż ten w moim katalogu domowym. Mogę poradzić sobie z tym, robiąc M-x eval-buffer na moim własnym pliku .emacs, ale jest to dużo dodatkowych kroków, a także nie wydaje się, aby usunąć głupkowate wiązania w jakimkolwiek pliku .emacs jest ładowany. Jeśli w ogóle, chciałbym po prostu znaleźć plik .emacs i usunąć niektóre obce powiązania (cn, cp, ca all rebound to strange stuff)

Moje główne pytanie nadal brzmi, jak sprawić, by emacs powiedział mi lokalizację załadowanego pliku .emacs?

Odpowiedz

41

Używany plik init jest przechowywany w zmiennej "user-init-file". Aby zobaczyć to użycie 'opisz-zmienną' (C-h v), wpisz 'user-init-file', a wyświetli się używany plik.

3

Jeśli korzystasz z systemu Linux, możesz spróbować zobaczyć, jakie pliki są otwierane przez emacs po uruchomieniu.

sudo strace -o /tmp/emacs.txt -e open emacs 
6

Można spróbować zobaczyć, co plik zostanie znaleziony przez:

C-x C-f ~/.emacs RET 

~ zostanie przetłumaczony na wartości zmiennej HOME środowiska. Emacs szuka .emacs, następnie .emacs.elc (bajtowa wersja skompilowana), następnie .emacs.el, następnie ~/.emacs.d/init.elc i ~/.emacs.d/init.el. Ten documentation pokazuje alternatywy. Zależy to również od zmiennych środowiskowych LOGNAME i USER.

Możesz także sprawdzić zawartość bufora *Messages* - ale powinieneś ustawić (setq message-log-max t) (jeśli możesz), aby zapewnić, że wszystkie Wiadomości są przechowywane. Wewnątrz tej buforze są linie, które wyglądają jak:

Ładowanie /home/tjackson/.emacs.tjackson.el (źródło) ...

który pokaże jakie pliki zostały załadowane.

Powinieneś również sprawdzić dokumentację Find-Init, która pokazuje jeszcze więcej plików, które można załadować, takie jak site-start.el, i inicjalizację specyficzną dla terminala (nowe dla mnie).

Powiązane problemy