Odpowiedzi:
Skopiuj i wklej z FAQ Emacsa, http://www.gnu.org/software/emacs/windows/ :
W systemie Windows .emacsplik może zostać wywołany w _emacscelu zapewnienia zgodności wstecznej z systemami plików DOS i FAT, w których nazwy plików nie mogą zaczynać się od kropki. Niektórzy użytkownicy wolą nadal używać takiej nazwy, ponieważ Eksplorator Windows nie może utworzyć pliku o nazwie zaczynającej się od kropki, mimo że system plików i większość innych programów sobie z tym poradzi. W Emacsie 22 i nowszych plikach inicjalizacyjnych można również wywołać .emacs.d/init.el. Wiele innych plików tworzonych przez pakiety Lisp jest teraz również przechowywanych w tym .emacs.dkatalogu, dzięki czemu wszystkie pliki związane z Emacsem są w jednym miejscu.
Wszystkie wymienione powyżej pliki powinny znaleźć się w Twoim katalogu HOME. Katalog HOME jest określany przez wykonanie poniższych kroków:
C:\.emacsistnieje, użyj C:/. Ma to na celu zapewnienie kompatybilności wstecznej, ponieważ poprzednie wersje były domyślnie C:/ustawione, jeśli HOME nie zostało ustawione.W Emacsie ~nazwa pliku jest rozwijana na początku do katalogu HOME, więc zawsze możesz znaleźć swój plik .emacs z rozszerzeniem C-x C-f ~/.emacs.
Więcej informacji można znaleźć w katalogach HOME i Startup w systemie MS-Windows .
Powinien być przechowywany w zmiennej user-init-file. Użyj, C-H v user-init-file RETaby sprawdzić. Możesz również otworzyć go bezpośrednio za pomocąM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression?
Na moim pudełku z Vista jest w C:\Users\<USER>\AppData\Roaming\
Zauważ, że samo wpisanie Ctrl-x Ctrl-f ~/.emacsi utworzenie pliku może NIE wystarczyć .
Może się zdarzyć, że aplikacja Emacsa używa innego miejsca do przechowywania pliku init, a jeśli tak, to utworzenie pliku ~ / .emacs po prostu tworzy bezużyteczny plik, który aplikacja Emacsa ignoruje.
Możesz także chcieć zrobić coś więcej niż tylko uzyskać dostęp do pliku inicjalizacyjnego .emacs, ale możesz chcieć wiedzieć, gdzie on się znajduje, tj. Jego ścieżkę dostępu.
Aby to osiągnąć, istnieją dwie metody:
Prosty sposób: wpisz Ctrl+ H Vplik inicjujący użytkownikaReturn
Nieco trudniejszy sposób: Możesz dowiedzieć się, gdzie Twój system przechowuje własny plik .emacs, wykonując:
c:/Users/user1/AppData/Roaming/.emacs.el. Ta strona emacswiki.org/emacs/DotEmacsDotD pomogła mi uświadomić sobie, że muszę nazwać plik, ~/.emacs.d/init.elco oznaczało, że plik w systemie plików był w c:\Users\user1\AppData\Roaming\.emacs.d\init.el(zupełnie nie taki, jakiego się spodziewałem). Wolę ustawić zmienną środowiskową HOME i umieścić plik w moim %USERPROFILE%katalogu, który jest logicznym katalogiem HOME w systemie Windows (przynajmniej jeśli o mnie chodzi).
W systemie Windows 7 umieść init.elplik w miejscu C:\Users\user-name\AppData\Roaming\.emacs.d\, gdzie nazwa użytkownika to folder użytkownika / logowania.
Uważaj, aby Twój init.elplik nie został nazwany init.el.txt. To jest coś, co robi Windows, jeśli utworzysz plik za pomocą jakiegoś edytora, takiego jak Notatnik.
Musisz utworzyć plik inicjalizacyjny emacsa. Jeden nie jest tworzony automatycznie. Miałem podobny problem i ta odpowiedź śledzi to, co zrobiłem.
Mój problem polegał na tym, że mój ~/.emacs.elplik się nie ładował. Dziwne, ponieważ zawsze mi to działało.
To pytanie / odpowiedź pomogło mi, ale musiałem umieścić mój plik init w pliku, %USERPROFILE%\AppData\Roaming\.emacs.d\init.elponieważ jest to najwyraźniej domyślne zachowanie w systemie Windows.
Aby rozwiązać ten problem, uruchomiłem następujące polecenie w buforze emacs * scratch * .
user-emacs-directory
"~/.emacs.d/"
Kiedy zobaczyłem user-emacs-directorybyło ~/.emacs.d, po prostu przeniósł się do mojego pliku .emacs.el %USERPROFILE%\.emacs.d\init.el. Ale to nadal nie działało. Kontynuowałem, expand-file-namejak pokazano poniżej:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Pokochałem sposób działania systemu Windows. (nie) Więc przeniosłem mój emacs.elplik do %USERPROFILE%\AppData\Roaming\.emacs.d\init.eli to zadziałało. Plik był teraz odczytywany. Ale dostałem inne błędy, ponieważ mój plik inicjalizacyjny załadował inne (osobiste pliki emacsa) (w formacie ~/myenv/emacs/*.el.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Hum ... Wygląda na to, że wszystkie moje pliki ~/myenv/emacs/*.elmusiałyby zostać przeniesione, aby to zadziałało, ale nie chciałem tego robić. Wtedy zdałem sobie sprawę, że ponieważ zmienna środowiskowa HOME nie została ustawiona, emacs zachowuje się domyślnie .
ROZWIĄZANIE
Kiedy ustawiłem HOMEzmienną środowiskową systemu Windows, %USERPROFILE%wszystko zaczęło działać tak, jak przez ostatnie 25 lat. :-)
Aby ustawić zmienną środowiskową HOME, wpisałem WindowsKey + "edytuj zmienne środowiskowe dla twojego konta", aby otworzyć okno dialogowe Zmienne środowiskowe i wprowadziłem HOME=%USERPROFILE%.
Teraz mój plik inicjalizacyjny emacsa .emacs.el jest z powrotem na swoim właściwym miejscu $HOME/.emacs.eli nie jest w%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Aby być uczciwym, gdyby system Windows miał tylko jedno miejsce do umieszczania plików dla pakietów zainstalowanych przez użytkownika, rozwiązanie polegające na uczynieniu HOME = %USERPROFILE\AppData\Roamingmoże być akceptowalne, ale ponieważ niektóre aplikacje używają %USERPROFILE%, niektóre używają, %USERPROFILE\AppData\Roaminga inne używają %USERPROFILE\AppData\Localgo, po prostu utrudnia określenie, gdzie znaleźć konfigurację pliki.
Wolę mieć wszystko w moim katalogu% USERPROFILE% lub $ HOME.
Kolejne podobne pytanie było tutaj:
Jak odpowiedziała kanja, ścieżka do tego pliku jest przechowywana w user-init-filezmiennej (lub jeśli nie istnieje plik init, zmienna zawiera domyślną wartość miejsca jej utworzenia).
Więc niezależnie od tego, której z możliwych nazw plików init używasz i w którym katalogu się znajduje, powinieneś być w stanie odwiedzić swój plik init za pomocą:
M-: (find-file user-init-file) RET
Lub wyświetl pełną ścieżkę w obszarze echa za pomocą:
M-: (expand-file-name user-init-file) RET
W Emacs 23 i Windows 7 działa tylko wtedy, gdy ustawisz:
HKCU\SOFTWARE\GNU\Emacs\HOME
Zauważyłem, że Emacs 22 od czasu do czasu otwiera „C: \ Documents and Settings \ nazwa użytkownika \ Dane aplikacji \ .emacs” lub po prostu „C: \ Documents and Settings \ nazwa użytkownika \ .emacs” na moim komputerze XP. Nie znalazłem wyjaśnienia, dlaczego czasami zmienia zdanie.
~ zawsze będzie wskazywał na to, co bieżąca instancja emacsa uważa za HOME, ale wskazówka kanji (Ch v user-init-file) zawsze powie ci, do czego właściwie odwzorowuje ~ / .emacs.
HOMEzmienną środowiskową inaczej, w zależności od tego, jak zacznę runemacs.exe. Jeśli uruchomię go z poziomu Eksploratora, HOMEjest ustawiony na C:\Documents and Settings\username, ale jeśli uruchomię go z menu Start, HOMEjest C:\Documents and Settings\username\Application Data. Dziwne.
W systemie Windows XP jest to:
C:\Documents and Settings\yourusernamehere\Application Data\
Istnieje lista katalogów oparta na wersji systemu Windows i dodatkowych informacji: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
W systemie Windows 8.1, jeśli Emacs jest uruchamiany z Eksploratora Windows , skrótu lub konsoli cmd , używa pliku inicjującego C: \ Users \ <USER> \ AppData \ Roaming.emacs . Kiedy uruchamiam Emacsa z PowerShell, Emacs szuka swojego pliku init w folderze C: \ Users \ <USER> . Rozwiązaniem tego problemu było ustawienie zmiennej środowiskowej użytkownika HOME (Panel sterowania \ System i zabezpieczenia \ System-> Zaawansowane ustawienia systemu-> Zaawansowane-> Zmienne środowiskowe) na C: \ Users \ <USER> . Po tej zmianie bez względu na to, jak uruchomię Emacsa, używa tego samego pliku init (zobacz zaakceptowaną odpowiedź na to pytanie )
Dla Windows7 i Emacs26.3 .3
jeśli HOMEustawiono środowisko, .emacsplik powinien znajdować się w tym folderze.
w przeciwnym razie powinien znajdować się w c:\.
W obu przypadkach, jeśli .emacsnie ma, _emacsnależy użyć.
Dzieje się tak, ponieważ nie możemy utworzyć .emacspliku zgodnie z regułami nazewnictwa plików systemu Windows (ale możemy go pobrać lub skopiować z innego miejsca).