arquivo init específico do projeto

10

Tenho algumas personalizações para o emacs que eu gostaria de usar para um único projeto, mas não afetam o emacs globalmente. Existe alguma maneira de o emacs carregar um arquivo init específico quando iniciado a partir de um determinado diretório ou carregar automaticamente todos os arquivos init no diretório do qual foi iniciado?

Connor
fonte

Respostas:

17

Você pode dar uma olhada nas variáveis ​​de diretório . Basicamente, você precisará criar um .dir-locals.elarquivo na raiz do projeto, com todas as configurações específicas do projeto. Agora, sempre que você abrir um arquivo no diretório ou em qualquer um de seus subdiretórios, o emacs aplicará as configurações do .dir-locals.elarquivo.

Por exemplo, suponha que você queira usar o make package installcomando as compile apenas no projeto A, precisará criar um arquivo chamado .dir-locals.el no diretório raiz do projeto e adicionar algo como o seguinte

((nil . ((compile-command . "make package install"))))

A partir de agora, sempre que você executar o compilecomando de qualquer arquivo no diretório A, o padrão compile-commandserá o especificado acima, no entanto, os compile commandarquivos fora do diretório A permanecerão intocados.

Iqbal Ansari
fonte
2

Uma alternativa menos caracterizada .dir-locals.elé o padrão EditorConfig , que possui um pacote emacs . Ele não suporta quase tantas opções, no entanto, permite que uma equipe padronize algumas configurações e as use em diferentes editores.

Ele se comporta da mesma maneira, com um .editorconfigarquivo específico do projeto no nível superior.

Lee H
fonte