Meu arquivo ~/.emacs
(que você pode encontrar no GitHub ) carrega vários pacotes Emacs diferentes e eu gostaria que eles fossem instalados automaticamente assim que o Emacs iniciar, se ainda não estiverem instalados. Dessa forma, se eu precisar reinstalar meu sistema operacional Ubuntu 16.04 novamente, não precisarei instalar cada pacote manualmente manualmente M-x package-install
. Existe uma maneira de gravar um ~/.emacs
arquivo para que ele instale automaticamente todos os pacotes carregados na inicialização? Eu gostaria que isso fosse feito com o mínimo de linhas, pois tenho mais de dez pacotes diferentes carregados; portanto, se eu tiver que adicionar linhas extras para cada pacote individual, isso me tornará ~/.emacs
bastante longo.
9
use-package
, como faço na linha 61 do meu arquivo .emacs?package-install-selected-packages
(requer o Emacs 25.1).~/.emacs
arquivo fique "longo". Mas se você está carregando apenas uma dúzia de pacotes, está realmente preocupado com as 11 linhas extras na sua configuração?Respostas:
A maneira mais fácil é instalar
use-package
.Então
O
:ensure t
é o que garante que o pacote é instalado.Para carregar apenas garantir a instalação de vários pacotes
fonte
package.el
mantém o controle dos pacotes que você pediu para instalar (em oposição aos que são instalados automaticamente como dependências) na variável personalizadapackage-selected-packages
.Portanto, se você copiar
~/.emacs
(em que o Custom normalmente grava configurações como a depackage-selected-packages
) em outro sistema, tudo o que você precisa fazer éM-x package-install-selected-packages
.Obviamente, isso não instala automaticamente os pacotes se eles estiverem ausentes, mas considero um recurso (acho que é um erro de um programa como o Emacs fazer conexões de rede sem uma solicitação explícita). E economiza o trabalho de instalar cada pacote, um por um.
fonte
(package-refresh-contents)
precisa ser invocada uma vez antes,(package-install-selected-packages)
quando o diretório do pacote local está totalmente ausente, para que os diretórios do archive de distribuição de pacotes sejam armazenados em cache primeiro nos subdiretórios doarchive/
diretório.