10 ms·
Emacs packages for programmers
- tikhonj 14y agoAutomatic package management is great. Now I just have to sit down and convert all the (quite numerous) extensions I've installed to using the package manager though :P. This should help with keeping everything updated and going from computer to computer. My current system just has everything in a private git repository, but this isn't really ideal. I should also probably submit the one major mode I've written. However, it's specific to a particular course taught by one professor, so nobody is going to be needing it for at least one semester :).
- nic-ferrier 14y agoMy init file is now much much simpler. It's easier to use customization once you're using packages. Package quality is also better than the old "install this file in your load-path somewhere" because there are established ways of doing stuff that work automatically (autoload cookies for example, I'll do another post on them sometime).
- Derbasti 14y agoI have set up my Emacs so that it will automatically download and install all my favourite plugins if they are not installed yet. So to set up a new machine, I simply copy my .emacs over and start Emacs. Emacs will then fetch and install all my plugins automatically. Quite handy!
- chilie 14y agoWould you mind sharing your .emacs so we can see how you have that set up?
- mahcuz 14y agoThe way people typically do this is by VCing their configurations in a "dotfiles" repository. New machine? Pull your dotfiles, and create the symlinks in your homedir.
- chilie 14y agoI currently do this with my entire .emacs.d directory, but it sounds like Derbasti only pulls his .emacs, and then has code to check for installed packages and get any that are missing.
- tcas 14y agoIt's pretty easy using package. Here's what I just copied and pasted from my init.el (require 'package) (dolist (source '(("technomancy" . "http://repo.technomancy.us/emacs/) ("elpa" . "http://tromey.com/elpa/))) (add-to-list 'package-archives source t)) (package-initialize) (defvar my-packages '(starter-kit zenburn-theme auctex color-theme-solarized csharp-mode ecb_snap find-file-in-project flymake-css flymake-php idle-highlight ido-ubiquitous ipython python-mode magit markdown-mode paredit pastels-on-dark-theme php-mode rainbow-mode smex solarized-theme starter-kit-js zenburn-theme) "A list of packages to ensure are installed at launch.") (dolist (p my-packages) (when (not (package-installed-p p)) (package-install p))) Where you add the package name to my-packages. It's kinda cool to see it download and compile everything on a new install.
- Derbasti 14y agoI would have posted my own setup, but it is all but identical to yours, so there you go ;-)
- nic-ferrier 14y agothis is really neat. what would be cool is to keep the package list up to date automatically (possibly by advising package installation - https://github.com/nicferrier/emacs-package-store/blob/master/package-store.el https://github.com/nicferrier/emacs-package-store/blob/maste...). Then everytime you installed a package it would get written into the list and everytime you moved your init it would all happen automatically. That would be cool. And not hard to do either. You could just keep a customization variable of the "base packages" or something and have it saved by the standard custom stuff.
- zrail 14y agoI recently refactored my Emacs config[1] to use el-get[2], which lets you install from the official package list from random git repos, and even from the emacs wiki if you're so inclined. My config is quite a bit simpler and easier to back on than it was before. [1]: https://github.com/peterkeen/dotfiles https://github.com/peterkeen/dotfiles [2]: https://github.com/dimitri/el-get https://github.com/dimitri/el-get
- nic-ferrier 14y agoel-get is pretty cool but I think package has the following advantages over el-get: 1) it's standard emacs 2) although it doesn't have yet it will be able to support digital signatures for packages (as well as other security mechanisms) As a developer of Emacs packages (it seems to be the only code I've written this year, outside of work) I am sticking with package. I don't know how much the tips here might be relevant to el-get, I think not very.
- naner 14y agoel-get is really for picking up the loose ends that don't make it into packages. Most Emacs users should start out with package and only move to el-get if they really need it.
- mechanical_fish 14y agoI had el-get installing stuff from emacs wiki until someone pointed out that it's completely insecure. Anyone who edits the wiki can inject arbitrary commands on your machine. The only safe way to use emacs wiki code is to audit it first, and el-get can't do that for you.
- zrail 14y agoWow, that's a good point. I'm going to pull the stuff I use directly into my dotfiles repo.
- heretohelp 14y ago
- dfc 14y agoIs there any advantage to MELPA? Why publish to MELPA instead of marmalade or elpa proper?
- naner 14y agoIt appears there is less work for the publisher if they are using github.
- barik 14y agoI've often wondered the same. You basically end up having to have all three in your init.el file, since there doesn't appear to be a good rhyme or reason are to which packages are contained in which repositories.
- nic-ferrier 14y agoAs I've said elsewhere, we will sort this out in the end. Right now MELPA tends to be the latest and greatest and marmalade is more stable (read 'less exciting') releases. It would be good to have this recognized per-package though so hopefully we will merge the strategies of both repositories into a single repository that can do any one of those things for any package configuration.
- nic-ferrier 14y agoThe guys who run MELPA and me (I run marmalade) are talking and we hope that there can be just one repo in the end. It may take us a while to combine the best parts of the 2 systems in the right way.
- sanityinc 14y agoMELPA co-maintainer here. MELPA builds packages from source, so once there's a recipe, there's no need for package developers to prepare or upload new package files -- the packages just appear automatically on MELPA soon after the source code is updated.
- FrojoS 14y agoVery interesting but I was expecting something else when I read the title. I was hoping there will be packages that are useful for programers. For instance, I'd love to see a good C# package. I tried to install a emacs-lisp script manually (csharp-mode-0.8.5.el) but failed since I am a total emacs rookie.
- nic-ferrier 14y agoYou're right. I have renamed the article "Packages for Emacs Programmers"