¿Puede Emacs detectar la ruta de su ejecutable?

8

Supongamos que tengo dos emacs idénticos (de la misma versión) en mi sistema. Uno se coloca en C:\Program Files\Gnu Emacsy el otro en un lugar diferente, por ejemplo C:\Program Files\New Gnu Emacs. ¿Puede un Emacs en ejecución detectar cuál es? Por ejemplo, ¿puede dar la ruta de su ejecutable (es decir, la ruta donde se puede encontrar emacs.exe o emacs.bin)?

Nombre
fuente

Respuestas:

14

Suponiendo que Emacs sepa cómo se inició, puede acceder a la ruta completa del archivo ejecutable haciendo lo siguiente:

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

En mi sistema, por ejemplo, esto regresa "/usr/local/bin/emacs"en mi sesión regular y regresa "~/.evm/bin/emacs"en mi sesión de prueba evm. Si quieres ponerte elegante, también puedes envolverlo file-truename para resolver cualquier enlace simbólico.


Las dos variables utilizadas anteriormente, como se describe por sus cadenas de documentos:

  • invocation-name

    El nombre del programa que se utilizó para ejecutar Emacs.
    Se omiten todos los nombres de directorio.

  • invocation-directory

    El directorio en el que se encontró el ejecutable de Emacs, para ejecutarlo.
    El valor es nulo si no se conoce el nombre de ese directorio.

Malabarba
fuente