Respostas:
O Emacs tem vários locais para procurar arquivos init, conforme documentado no manual . Se você deseja personalizar o Emacs, você deve começar com um desses arquivos.
Uma abordagem comum é usar o arquivo init.el
no seu diretório, em user-emacs-directory
vez de ter um .emacs
no diretório HOME.
O user-emacs-directory
padrão é ~/.emacs.d
, portanto, ainda é relativo à sua HOME, mas o benefício dessa abordagem é que você pode manter tudo relacionado à configuração do Emacs em um único local. Esse diretório pode estar sob controle de versão, com backup, compartilhado em várias máquinas, etc. Você pode usar um link simbólico ( mklink
no Windows) para manter os arquivos em outro local.
Por exemplo, é bastante comum ver as pessoas manterem a configuração do Emacs no Github. Você pode encontrar muitos exemplos desta por pesquisar Github para projetos elisp com arquivos init.el .
user-emacs-directory
Em cada instalação do Windows em que eu uso o Emacs, tenho o seguinte código em um .emacs
arquivo no local listado:
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
Desta forma, eu posso colocar o meu .emacs
e em .emacs.d/
qualquer lugar que eu quiser.
O seu arquivo .emacs entra no seu HOME
diretório. No manual do Emacs:
O equivalente do Windows ao HOME é o diretório de dados do aplicativo específico do usuário. A localização real depende da versão do Windows ...
Você pode substituir esse valor padrão de HOME configurando explicitamente a variável de ambiente HOME para apontar para qualquer diretório em seu sistema. HOME pode ser definido no prompt do shell de comando ou na caixa de diálogo "Propriedades" de "Meu computador". HOME também pode ser definido no registro do sistema, consulte Registro do MS-Windows.
HOME
diretório para algo totalmente diferente. Por isso, chamo isso de mudança de hack. Defini-lo com seu valor apropriado é obviamente bom.
Você diz:
Eu sei como definir o diretório home, no entanto, por razões de controle de versão, desejo poder configurar o emacs para ler em um diretório diferente (para que eu possa ter um diretório específico para o emacs) .
Seu arquivo init vai para o seu diretório pessoal, que você pode colocar em qualquer lugar. Aparentemente, você deseja ter um diretório diferente para as coisas que o Emacs carrega. Isso não é problema. Coloque seu arquivo init no diretório inicial e faça com que ele adicione outro diretório ao valor da variável load-path
e, em seguida, exija quaisquer outras bibliotecas do Emacs que você deseja usar. Coloque essas bibliotecas nesse outro diretório.
IOW, seu arquivo init não precisa conter nada além da configuração do diretório em que você mantém as bibliotecas do Emacs que deseja carregar.
Por uma questão de integridade, forneço um link para:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
O que diz que você pode definir um HOME
valor no caminho do registro:
HKCU\SOFTWARE\GNU\Emacs\HOME
Mas esse valor é substituído pela variável de ambiente HOME
.
Acho que você poderia colocar (setq user-init-file "C:/path/to/.emacs")
e outras linhas propostas por @ryan em site-start.el
Seu site também pode ter um arquivo de inicialização do site; isso é chamado site-start.el, se existir. Como default.el, o Emacs encontra esse arquivo pelo caminho de pesquisa padrão das bibliotecas Lisp. O Emacs carrega essa biblioteca antes de carregar seu arquivo init.
site-start.el
carregar o seu próprioinit.el
e não precisa mais a.emacs
. Neste exemplo, você não precisa mexer no diretório inicial (a menos que outra pessoa no computador esteja colocando coisas nele que afetarão o que você faz). Em outras palavras, ele pode ficar em branco e você nunca precisa tocá-lo.