i use currently melpa
for managing my emacs packages, but I'm not satisfied with that. Melpa
seems to manage the packages by dumping them into my emacs.d
- which i don't want to store inside my dotfiles git repo. But still, i want to be able to easily reinstall my emacs without much interaction (ideally just executing an update command)
Most Plugin Managers of vim provided a very neat way of solving that issue. They dump also the packages inside my .vim, but mainly manage them by a list inside the main vim config file:
call plug#begin('~/.dotfiles/nvim/autoload/plugged')
" Languages
Plug '0robustus1/vim-tmux-conf'
Plug 'hrother/offlineimaprc.vim'
Plug 'LaTeX-Box-Team/LaTeX-Box'
Plug 'Matt-Deacalion/vim-systemd-syntax'
" Editing
Plug 'tpope/vim-surround'
Plug 'scrooloose/nerdcommenter'
" git helpers
Plug 'jreybert/vimagit'
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'
Plug 'vim-scripts/gitdiff.vim'
" other useful stuff
Plug 'tyru/open-browser.vim'
Plug 'godlygeek/tabular'
call plug#end()
The packages there are basically listed as 'github-user/repo', therefore e.g. the url for 'godlygeek/tabular'
is https://github.com/godlygeek/tabular
. This way, i can completely ignore the content of my plugin directory. After reinstalling my vim, i can just execute ':PlugInstall'
To be clear what i search for: I don't care where my emacs installs its packages from (e.g. github, from the melpa servers, etc.). I just want to know a method how i can list all packages i want to install inside my emacs config file (like the vim solution).
is there sth similar for emacs?
~/.emacs.d/elpa
directory to your dotfiles.gitignore
file if you don't want to track that. Also, not committing your packages makes you dependent on all of those upstream sources remaining available, stable, and compatible.