Câu trả lời:
Emacs có một vài nơi nó tìm kiếm các tập tin init, như được ghi lại trong hướng dẫn . Nếu bạn muốn tùy chỉnh Emacs, bạn phải bắt đầu với một trong những tệp đó.
Một cách tiếp cận phổ biến là sử dụng tệp init.el
trong của bạn user-emacs-directory
, thay vì có .emacs
trong thư mục HOME của bạn.
Mặc user-emacs-directory
định ~/.emacs.d
, vì vậy nó vẫn liên quan đến TRANG CHỦ của bạn, nhưng lợi ích của phương pháp này là bạn có thể giữ mọi thứ liên quan đến cấu hình Emacs của mình ở một nơi. Thư mục đó có thể được kiểm soát phiên bản, sao lưu, chia sẻ trên nhiều máy, v.v. Bạn có thể sử dụng liên kết tượng trưng ( mklink
trên Windows) để giữ các tệp ở một số vị trí khác.
Ví dụ, khá phổ biến khi thấy mọi người duy trì cấu hình Emacs của họ trên Github. Bạn có thể tìm thấy rất nhiều ví dụ về điều này bằng cách tìm kiếm Github cho các dự án với các tập tin elisp init.el .
user-emacs-directory
Trên mỗi cài đặt Windows mà tôi sử dụng Emacs, tôi có mã sau đây trong một .emacs
tệp tại vị trí được liệt kê:
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
Bằng cách này tôi có thể đặt tôi .emacs
và .emacs.d/
bất cứ nơi nào tôi muốn.
Tệp .emacs của bạn đi trong HOME
thư mục của bạn . Từ hướng dẫn sử dụng Emacs:
Tương đương Windows của HOME là thư mục dữ liệu ứng dụng dành riêng cho người dùng. Vị trí thực tế phụ thuộc vào phiên bản Windows ...
Bạn có thể ghi đè giá trị mặc định này của HOME bằng cách đặt rõ ràng biến môi trường HOME để trỏ đến bất kỳ thư mục nào trên hệ thống của bạn. HOME có thể được đặt từ dấu nhắc trình vỏ lệnh hoặc từ hộp thoại 'Thuộc tính' của 'Máy tính của tôi'. HOME cũng có thể được đặt trong sổ đăng ký hệ thống, xem Sổ đăng ký MS-Windows.
HOME
thư mục của mình thành một thứ gì đó cực kỳ khác biệt. Do đó tại sao tôi gọi đó là thay đổi một hack. Đặt nó vào giá trị thích hợp của nó rõ ràng là tốt.
Bạn nói:
Tôi biết cách đặt thư mục chính tuy nhiên vì lý do kiểm soát phiên bản, tôi muốn có thể đặt emacs để đọc từ một thư mục khác (để tôi có thể có một thư mục dành riêng cho emacs) .
Tập tin init của bạn nằm trong thư mục chính của bạn, nơi bạn có thể đặt ở bất cứ đâu. Rõ ràng bạn muốn có một thư mục khác cho những thứ mà Emacs tải. Đó không phải là vấn đề. Đặt tệp init của bạn vào thư mục chính của bạn load-path
và yêu cầu tệp đó thêm một thư mục khác vào giá trị của biến và sau đó yêu cầu bất kỳ thư viện Emacs nào khác mà bạn muốn sử dụng. Đặt các thư viện trong thư mục khác.
IOW, tệp init của bạn không cần chứa bất cứ thứ gì ngoài việc thiết lập thư mục nơi bạn giữ các thư viện Emacs mà bạn muốn tải.
Để hoàn thiện, tôi cung cấp một liên kết đến:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
Điều đó nói rằng bạn có thể đặt một HOME
giá trị trong đường dẫn đăng ký:
HKCU\SOFTWARE\GNU\Emacs\HOME
Nhưng giá trị này bị ghi đè bởi biến môi trường HOME
.
Hãy nghĩ rằng bạn có thể đặt (setq user-init-file "C:/path/to/.emacs")
và các dòng khác được đề xuất bởi @ryan vào site-start.el
Trang web của bạn cũng có thể có một tệp khởi động trang web; cái này được đặt tên là site-start.el, nếu nó tồn tại. Giống như default.el, Emacs tìm thấy tệp này thông qua đường dẫn tìm kiếm tiêu chuẩn cho các thư viện Lisp. Emacs tải thư viện này trước khi nó tải tập tin init của bạn.
site-start.el
để tải của riênginit.el
bạn và bạn không còn cần a.emacs
. Trong ví dụ này, bạn không cần phải sử dụng thư mục chính (trừ khi có người khác trên máy tính đặt nội dung vào đó sẽ ảnh hưởng đến những gì bạn làm). Nói cách khác, nó có thể để trống và bạn không bao giờ cần phải chạm vào nó.