Đường dẫn tương đối trong tập tin init


7

Khi tải những thứ như chủ đề từ các thư mục tùy chỉnh, có thể chỉ định một đường dẫn liên quan đến tệp init.el, chứ không phải là một đường dẫn tuyệt đối?

Tôi hỏi bởi vì tôi muốn có thể sử dụng cùng một tệp cấu hình trên các máy OSX và Windows của mình, trong đó một đường dẫn tuyệt đối như ~ / .emacs.d / Themes có nghĩa là một cái gì đó khác nhau trên mỗi máy (Tôi thậm chí không chắc chắn cách Windows xử lý ~)


1
MS Windows xử lý ~/theo cùng một cách: như thư mục chính của bạn, giá trị của biến môi trường HOME.
vẽ

@Drew Tôi chỉ cố gắng cd ~/trong cmd nhưng không thể tìm thấy đường dẫn, mặc dù đã đặt biến HOME chính xác ...
Simon

Thông thường, cdlà đủ để đi đến thư mục nhà của bạn. Ngoài ra, bạn sử dụng powershell tốt hơn, cmd chắc chắn đã lỗi thời.
Nsukami _

Bạn đã bắt đầu với emacs -Q? Bạn đã xác định biến môi trường HOME? Bạn đã làm M-x cd RET ~/ RETchưa Làm việc cho tôi.
vẽ

1
Trình vỏ cmd.exe của Windows không hiểu ~, nhưng Emacs trên Windows sẽ xử lý nó. @Nsukami_: cd (tại dấu nhắc cmd) sẽ in thư mục hiện tại, không thay đổi thư mục nhà của bạn.
glucas

Câu trả lời:


10

Bạn có thể sử dụng ~ / trong tệp init của mình và nó sẽ hoạt động tốt trên Windows. Tôi luôn xác định biến môi trường HOME và đặt .emacs.d của mình ở đó, nhưng có các cách tiếp cận khác. Xem Câu hỏi thường gặp để biết chi tiết về cách Emacs quyết định sử dụng gì cho gia đình.

Bạn cũng có thể xây dựng đường dẫn với user-emacs-directorybiến, nếu bạn thích:

 (expand-file-name "foo.el" user-emacs-directory)

mà trong trường hợp của tôi sẽ được hoán đổi với chỉ "~/.emacs.d/foo.el".

.


Nếu bộ nhớ phục vụ, bạn cũng có thể sử dụng các biến môi trường MS Windows trong tên tệp (chúng sẽ được mở rộng), tuy nhiên bạn cần sử dụng cú pháp UNIX (tức là $PROGRAMFILESthay vì %PROGRAMFILES%, nhưng tôi không thể kiểm tra nó vào lúc này).
wvxvw

1
Bạn cũng có thể sử dụng tệp định vị người dùng-init-thay thế.

0

tải tương đối đã được viết để làm một cái gì đó như thế này. Mục đích của nó là liên kết tương đối trong một gói, nhưng tôi tin rằng nó cũng có thể được sử dụng ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.