Emacsはその実行ファイルのパスを検出できますか?


8

私のシステムに(同じバージョンの)2つの同一のemacがあるとします。1つはC:\Program Files\Gnu Emacs別の場所に、もう1つは別の場所に配置されますC:\Program Files\New Gnu Emacs。実行中のEmacsはどれかを検出できますか?たとえば、実行可能ファイルのパス(つまり、emacs.exeまたはemacs.binが見つかるパス)を指定できますか?

回答:


14

Emacsがそれがどのように開始されたかを知っていると仮定すると、実行することで実行可能ファイルのフルパスにアクセスできます:

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

たとえば、私のシステムでは、これは"/usr/local/bin/emacs"通常のセッションで戻り"~/.evm/bin/emacs"、EVMテストセッションで戻ります。凝ったものにしたい場合は、それをにラップしてfile-truename シンボリックリンクを解決することもできます 。


上記の2つの変数は、ドキュメント文字列で説明されています。

  • invocation-name

    Emacsの実行に使用されたプログラム名。
    ディレクトリ名は省略されます。

  • invocation-directory

    Emacsを実行するためのEmacs実行可能ファイルが見つかったディレクトリ。
    そのディレクトリの名前が不明な場合、値はnilです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.