Emacs peut-il détecter le chemin de son exécutable?


8

Supposons que j'ai deux emac identiques (de la même version) sur mon système. L'un est placé à C:\Program Files\Gnu Emacset l'autre à un endroit différent, par exemple C:\Program Files\New Gnu Emacs. Un Emacs en cours d'exécution peut-il détecter lequel? Par exemple, peut-il donner le chemin de son exécutable (c'est-à-dire le chemin où se trouvent emacs.exe ou emacs.bin)?

Réponses:


14

En supposant qu'Emacs sache comment il a été démarré, vous pouvez accéder au chemin complet du fichier exécutable en faisant:

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

Dans mon système, par exemple, cela revient "/usr/local/bin/emacs"sur ma session régulière et revient "~/.evm/bin/emacs"sur ma session de test evm. Si vous voulez devenir fantaisiste, vous pouvez également envelopper cela file-truename pour résoudre les liens symboliques.


Les deux variables utilisées ci-dessus, comme décrit par leurs chaînes doc:

  • invocation-name

    Nom du programme utilisé pour exécuter Emacs.
    Tous les noms de répertoire sont omis.

  • invocation-directory

    Le répertoire dans lequel l'exécutable Emacs a été trouvé, pour l'exécuter.
    La valeur est nulle si le nom de ce répertoire n'est pas connu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.