Câu trả lời:
Sao chép và dán từ Câu hỏi thường gặp về Emacs, http://www.gnu.org/software/emacs/windows/ :
Trên Windows, .emacs
tệp có thể được gọi _emacs
để tương thích ngược với các hệ thống tệp DOS và FAT trong đó tên tệp không thể bắt đầu bằng dấu chấm. Một số người dùng thích tiếp tục sử dụng tên như vậy vì Windows Explorer không thể tạo tệp có tên bắt đầu bằng dấu chấm, mặc dù hệ thống tệp và hầu hết các chương trình khác có thể xử lý nó. Trong Emacs 22 trở lên, tệp init cũng có thể được gọi .emacs.d/init.el
. Nhiều tệp khác được tạo bởi gói Lisp hiện cũng được lưu trữ trong .emacs.d
thư mục, vì vậy điều này giữ tất cả các tệp liên quan đến Emacs của bạn ở một nơi.
Tất cả các tệp được đề cập ở trên sẽ nằm trong thư mục HOME của bạn. Thư mục HOME được xác định bằng cách làm theo các bước dưới đây:
C:\.emacs
tồn tại, sau đó sử dụng C:/
. Điều này là để tương thích ngược, vì các phiên bản trước được mặc định là C:/
nếu HOME không được đặt.Trong Emacs, ~
ở phần đầu của tên tệp được mở rộng đến thư mục HOME của bạn, vì vậy bạn luôn có thể tìm thấy tệp .emacs của mình C-x C-f ~/.emacs
.
Có thêm thông tin tại TRANG CHỦ và Thư mục Khởi động trên MS-Windows .
Nó phải được lưu trữ trong tệp user-init-biến. Sử dụng C-H v user-init-file RET
để kiểm tra. Bạn cũng có thể mở nó trực tiếp bằng cách sử dụngM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression
?
Trên hộp Vista của tôi, nó ở trong C:\Users\<USER>\AppData\Roaming\
Lưu ý rằng có thể KHÔNG đủ nếu chỉ nhập Ctrl-x Ctrl-f ~/.emacs
và tạo tệp.
Có thể ứng dụng Emacs của bạn sử dụng một nơi khác để lưu trữ tệp init của bạn và nếu vậy, việc tạo tệp ~ / .emacs chỉ đơn giản là tạo ra một tệp vô dụng mà ứng dụng Emacs của bạn bỏ qua.
Ngoài ra, bạn có thể muốn làm nhiều việc hơn là chỉ truy cập vào tệp .emacs init, nhưng bạn có thể muốn biết vị trí của nó, tức là tên đường dẫn của nó.
Để đạt được điều này, có hai phương pháp:
Cách dễ dàng: gõ Ctrl+ H Vuser-init-fileReturn
Cách phức tạp hơn một chút: Bạn có thể tìm ra nơi hệ thống của bạn đang lưu trữ tệp .emacs của riêng nó bằng cách:
c:/Users/user1/AppData/Roaming/.emacs.el
. Trang web này emacswiki.org/emacs/DotEmacsDotD đã giúp tôi nhận ra rằng tôi cần đặt tên cho tệp ~/.emacs.d/init.el
, điều đó có nghĩa là tệp trong hệ thống tệp đang ở c:\Users\user1\AppData\Roaming\.emacs.d\init.el
(hoàn toàn không phải như tôi mong đợi). Tôi thích đặt biến môi trường HOME và đặt tệp trong %USERPROFILE%
thư mục của tôi, thư mục HOME hợp lý trên windows (ít nhất là theo như tôi có liên quan).
Trong Windows 7, hãy đưa init.el
tệp của bạn vào C:\Users\user-name\AppData\Roaming\.emacs.d\
, trong đó tên người dùng là người dùng / thư mục đăng nhập của bạn.
Hãy cẩn thận để init.el
tệp của bạn không bị đặt tên init.el.txt
. Đây là điều mà Windows thực hiện nếu bạn tạo tệp của mình bằng một số trình chỉnh sửa như Notepad.
Bạn phải tạo một tệp khởi tạo emacs. Một không được tạo tự động. Tôi đã gặp vấn đề tương tự và câu trả lời này theo dõi những gì tôi đã làm.
Vấn đề của tôi ~/.emacs.el
là tệp của tôi không tải. Lạ vì điều này đã luôn luôn hiệu quả với tôi.
Câu hỏi / câu trả lời này đã giúp tôi nhưng tôi phải đặt tệp init của mình vào %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
vì đây rõ ràng là hành vi mặc định trên Windows.
Để khắc phục sự cố này, tôi đã chạy phần sau trong bộ đệm emacs * xước * .
user-emacs-directory
"~/.emacs.d/"
Khi tôi thấy user-emacs-directory
là ~/.emacs.d
, tôi chỉ cần di chuyển tệp .emacs.el của mình sang %USERPROFILE%\.emacs.d\init.el
. Nhưng điều này vẫn không hoạt động. Tôi tiếp tục với expand-file-name
như hình dưới đây:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Phải yêu cách Windows hoạt động. (not) Vì vậy, tôi đã chuyển emacs.el
tệp của mình đến %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
và điều này đã hoạt động. Tệp hiện đang được đọc. Nhưng tôi gặp các lỗi khác do tệp khởi tạo của tôi đã tải các tệp (emacs cá nhân) khác (trong ~/myenv/emacs/*.el
.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Hum ... Có vẻ như tất cả các tệp của tôi ~/myenv/emacs/*.el
sẽ cần phải được di chuyển để việc này hoạt động nhưng tôi không muốn làm điều đó. Sau đó, tôi nhận ra rằng vì biến môi trường HOME không được đặt nên emacs đang thực hiện hành vi mặc định của nó .
GIẢI PHÁP
Khi tôi đặt HOME
biến môi trường windows của mình thành %USERPROFILE%
mọi thứ bắt đầu hoạt động như trong 25 năm qua. :-)
Để đặt biến môi trường HOME, tôi đã nhập WindowsKey + "chỉnh sửa biến môi trường cho tài khoản của bạn" để mở hộp thoại Biến môi trường và nhập HOME=%USERPROFILE%
.
Bây giờ tệp khởi tạo emacs của tôi .emacs.el đã trở lại đúng vị trí của nó $HOME/.emacs.el
và không ở%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Công bằng mà nói, nếu Windows chỉ có một nơi để đặt các tệp cho các gói do người dùng cài đặt thì giải pháp tạo HOME = %USERPROFILE\AppData\Roaming
có thể được chấp nhận, nhưng vì một số ứng dụng sử dụng %USERPROFILE%
, một số sử dụng %USERPROFILE\AppData\Roaming
và một số khác sử dụng %USERPROFILE\AppData\Local
nó chỉ khiến bạn khó biết tìm cấu hình của mình ở đâu. các tập tin.
Tôi muốn có mọi thứ trong thư mục% USERPROFILE% hoặc $ HOME của mình.
Một câu hỏi tương tự khác ở đây:
Như kanja đã trả lời, đường dẫn đến tệp này được lưu trữ trong user-init-file
biến (hoặc nếu không có tệp init tồn tại, biến chứa giá trị mặc định cho nơi tạo nó).
Vì vậy, bất kể bạn đang sử dụng tên tệp init nào và nó nằm trong thư mục nào, bạn sẽ có thể truy cập tệp init của mình bằng:
M-: (find-file user-init-file)
RET
Hoặc hiển thị đường dẫn đầy đủ của nó trong vùng tiếng vọng với:
M-: (expand-file-name user-init-file)
RET
Trên Emacs 23 và Windows 7, nó chỉ hoạt động nếu bạn đặt:
HKCU\SOFTWARE\GNU\Emacs\HOME
Tôi nhận thấy rằng Emacs 22 đôi khi sẽ mở "C: \ Documents and Settings \ username \ Application Data \ .emacs" hoặc chỉ "C: \ Documents and Settings \ username \ .emacs" trên máy XP của tôi. Tôi chưa tìm ra lời giải thích tại sao thỉnh thoảng nó lại đổi ý.
~ sẽ luôn trỏ đến bất kỳ trường hợp hiện tại nào của emacs cho là HOME, nhưng mẹo của kanja (Ch v user-init-file) sẽ luôn cho bạn biết ~ / .emacs thực sự ánh xạ tới cái gì.
HOME
biến môi trường khác nhau, tùy thuộc vào cách tôi bắt đầu runemacs.exe
. Nếu tôi khởi động nó từ bên trong Explorer, HOME
được đặt thành C:\Documents and Settings\username
, nhưng nếu tôi khởi động nó từ Start Menu, thì HOME
là C:\Documents and Settings\username\Application Data
. Thật kỳ lạ.
Trên Windows XP, đó là:
C:\Documents and Settings\yourusernamehere\Application Data\
Có một danh sách các thư mục dựa trên phiên bản Windows của bạn và thông tin bổ sung: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Trên Windows 8.1, nếu Emacs được khởi động từ Windows Explorer , một lối tắt hoặc từ bảng điều khiển cmd, nó sẽ sử dụng tệp init C: \ Users \ <USER> \ AppData \ Roaming.emacs . Khi tôi khởi động Emacs từ PowerShell, Emacs sẽ tìm tệp init của nó trong thư mục C: \ Users \ <USER> . Cách khắc phục sự cố này là đặt biến môi trường người dùng HOME (Control Panel \ System and Security \ System-> Cài đặt hệ thống nâng cao-> Nâng cao-> Biến môi trường) thành C: \ Users \ <USER> . Sau thay đổi này, bất kể tôi khởi động Emacs bằng cách nào, nó vẫn sử dụng cùng một tệp init (xem câu trả lời được chấp nhận của câu hỏi này )
Dành cho WIndows7 & Emacs26.3 :
nếu HOME
môi trường được đặt, thì .emacs
tệp sẽ nằm trong thư mục đó.
nếu không, nó phải ở trong c:\
.
Trong cả hai trường hợp, nếu .emacs
không có, _emacs
nên được sử dụng.
Điều này là do chúng ta không thể tạo .emacs
tệp theo quy tắc đặt tên tệp của windows (nhưng chúng ta có thể tải xuống hoặc sao chép nó từ một nơi khác).