Caminhos relativos no arquivo init

7

Ao carregar coisas como temas de diretórios personalizados, é possível especificar um caminho relativo ao arquivo init.el, em vez de um caminho absoluto?

Eu pergunto porque eu quero poder usar o mesmo arquivo de configuração em minhas máquinas OSX e Windows, onde um caminho absoluto como ~ / .emacs.d / themes significa algo diferente em cada máquina (eu nem tenho certeza de como o Windows lida com ~)

Simon
fonte
11
O MS Windows lida ~/da mesma maneira: como seu diretório pessoal, o valor da variável de ambiente HOME.
Desenhou
@Drew Eu apenas tentei cd ~/em cmd mas o caminho não foi encontrado, apesar de ter a variável HOME configurado corretamente ...
Simon
Normalmente, cdé suficiente para acessar o diretório inicial. Além disso, é melhor usar o powershell, o cmd está definitivamente desatualizado.
Nsukami _
Você começou com emacs -Q? Você definiu a variável de ambiente HOME? Você fez M-x cd RET ~/ RET? Funciona para mim.
Desenhou
11
O shell do cmd.exe do Windows não entende ~, mas o Emacs no Windows cuidará dele. @Nsukami_: cd (em um prompt de cmd) imprimirá o diretório atual, não mudará para o diretório home.
glucas

Respostas:

10

Você pode usar ~ / no seu arquivo init e ele funcionará bem no Windows. Eu sempre defino uma variável de ambiente HOME e coloco meu .emacs.d lá, mas existem outras abordagens. Consulte as Perguntas frequentes para obter detalhes de como o Emacs decide o que usar em casa.

Você também pode criar caminhos com a user-emacs-directoryvariável, se preferir:

 (expand-file-name "foo.el" user-emacs-directory)

que no meu caso seria intercambiável com apenas "~/.emacs.d/foo.el".

.

glucas
fonte
Se a memória servir, você também pode usar variáveis ​​de ambiente do MS Windows no nome do arquivo (elas serão expandidas); no entanto, você precisará usar a sintaxe UNIX (ou seja, em $PROGRAMFILESvez de %PROGRAMFILES%, mas não posso verificar no momento).
Wdxvw
11
Você também pode usar o arquivo find-user-init-file.
0

O relativo de carga foi escrito para fazer algo assim. Seu objetivo era fazer links relativos dentro de um pacote, mas acredito que também pode ser usado aqui.

rochoso
fonte