O Emacs pode detectar o caminho do seu executável?

8

Suponha que eu tenha dois emacs idênticos (da mesma versão) no meu sistema. Um é colocado em C:\Program Files\Gnu Emacse o outro em outro local, digamos C:\Program Files\New Gnu Emacs. Um Emacs em execução pode detectar qual é? Por exemplo, ele pode fornecer o caminho de seu executável (ou seja, o caminho onde emacs.exe ou emacs.bin podem ser encontrados)?

Nome
fonte

Respostas:

14

Supondo que o Emacs saiba como foi iniciado, você pode acessar o caminho completo do arquivo executável fazendo:

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

No meu sistema, por exemplo, isso retorna "/usr/local/bin/emacs"na minha sessão regular e "~/.evm/bin/emacs"na minha sessão de teste evm. Se você quiser ser chique, também pode agrupá-lo em um file-truename para resolver quaisquer links simbólicos.


As duas variáveis ​​usadas acima, conforme descritas por suas strings de documentos:

  • invocation-name

    O nome do programa que foi usado para executar o Emacs.
    Quaisquer nomes de diretório são omitidos.

  • invocation-directory

    O diretório em que o executável do Emacs foi encontrado, para executá-lo.
    O valor é nulo se o nome desse diretório não for conhecido.

Malabarba
fonte