Eu gostaria de definir o modo principal de um arquivo como você usaria variáveis locais do arquivo
Local Variables:
mode: text
End:
mas .dir-locals.el
para não "poluir" o arquivo em questão. Isso é possível?
Eu gostaria de definir o modo principal de um arquivo como você usaria variáveis locais do arquivo
Local Variables:
mode: text
End:
mas .dir-locals.el
para não "poluir" o arquivo em questão. Isso é possível?
eval
pseudo-variável é a única maneira de lidar com isso em um.dir-locals.el
arquivo. Para elisp customizado, você pode usar apenasauto-mode-alist
para corresponder ao nome do arquivo regexp (você pode usarregexp-quote
para criar padrões para valores de sequência literal, se necessário).Respostas:
É possível especificar uma string em vez de um modo, mas isso funciona apenas para subdiretórios. Então, em
nil
vez disso, usarei para combinar todos os modos e, em seguida, aeval
tecla para alterar o modo principal condicionalmente:Uma desvantagem dessa abordagem é que a
eval
chave é insegura; portanto, você precisará confirmar permanentemente a variável para que isso tenha efeito.fonte
A seguir,
.dir-locals.el
funciona muito bem para eu definir o modo principal de todos os arquivos em um diretório parashell-script-mode
:A desvantagem óbvia é que você não pode especificar o modo principal apenas para um determinado subconjunto de arquivos no diretório.
Adendo: Divertidamente, ele também tem o efeito colateral de definir o modo principal de
.dir-locals.el
si mesmoshell-script-mode
.Adendo 2: De maneira mais divertida, ele também tem o efeito colateral de definir o modo principal de buffers Dired
shell-script-mode
, tornando impossível abrir qualquer (como um erro é gerado durante a inicialização).fonte