Bisakah Emacs mendeteksi jalur yang dapat dieksekusi?


8

Misalkan saya memiliki dua emacs identik (dari versi yang sama) di sistem saya. Satu ditempatkan di C:\Program Files\Gnu Emacsdan yang lain di tempat yang berbeda, katakanlah C:\Program Files\New Gnu Emacs. Bisakah Emacs yang berjalan mendeteksi yang mana? Sebagai contoh, dapatkah ia memberikan path dari executable-nya (yaitu path di mana emacs.exe atau emacs.bin dapat ditemukan)?

Jawaban:


14

Dengan asumsi Emacs tahu cara memulainya, Anda dapat mengakses path lengkap file yang dapat dieksekusi dengan melakukan:

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

Dalam sistem saya, misalnya, ini kembali "/usr/local/bin/emacs"pada sesi reguler saya dan kembali "~/.evm/bin/emacs"pada sesi tes evm saya. Jika Anda ingin mendapatkan kemewahan, Anda juga dapat membungkusnya dalam file-truename untuk menyelesaikan semua tautan.


Dua variabel yang digunakan di atas, seperti yang dijelaskan oleh string dokumen mereka:

  • invocation-name

    Nama program yang digunakan untuk menjalankan Emacs.
    Setiap nama direktori dihilangkan.

  • invocation-directory

    Direktori tempat executable Emacs ditemukan, untuk menjalankannya.
    Nilainya nol jika nama direktori itu tidak diketahui.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.