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 ~)


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".

.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.