Emacs có thể phát hiện đường dẫn thực thi của nó không?


8

Giả sử rằng tôi có hai emacs giống hệt nhau (cùng phiên bản) trên hệ thống của mình. Một cái được đặt ở C:\Program Files\Gnu Emacsvà cái kia ở vị trí khác, nói C:\Program Files\New Gnu Emacs. Một Emacs đang chạy có thể phát hiện ra cái nào không? Ví dụ, nó có thể đưa ra đường dẫn thực thi của nó không (nghĩa là đường dẫn có thể tìm thấy emacs.exe hoặc emacs.bin)?

Câu trả lời:


14

Giả sử Emacs biết nó đã được bắt đầu như thế nào, bạn có thể truy cập vào đường dẫn đầy đủ của tệp thực thi bằng cách thực hiện:

(expand-file-name invocation-name invocation-directory)

Trong hệ thống của tôi, ví dụ, cái này trả "/usr/local/bin/emacs"về phiên thông thường của tôi và trả "~/.evm/bin/emacs"về phiên kiểm tra evm của tôi. Nếu bạn muốn có được sự ưa thích, bạn cũng có thể gói nó vào file-truename để giải quyết bất kỳ liên kết tượng trưng nào.


Hai biến được sử dụng ở trên, như được mô tả bởi các chuỗi doc của chúng:

  • invocation-name

    Tên chương trình đã được sử dụng để chạy Emacs.
    Bất kỳ tên thư mục được bỏ qua.

  • invocation-directory

    Thư mục trong đó thực thi Emacs đã được tìm thấy, để chạy nó.
    Giá trị là 0 nếu tên thư mục đó không được biết.

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.