Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I love emacs, I really do. It is really hard to share customizations with git for emacs in my experience. Right now I'm using prelude + some customizations. I can keep my fork of the prelude repo on my account, and add stuff to /personal . But other than cherry-picks, which would probably get difficult, I really don't know how to contribute back to prelude. pulling the latest version of prelude (or any other preset emacs customization set) requires me to restart emacs, which I normally only do once every other week or so. How do others handle this?


I have two macs that both run emacs. I have a private git repository for my .emacs.d folder (an old mirror can be found here: https://github.com/elarkin/.emacs.d ). I have taken special care to make sure that the init.el file is readable, and can be used with a fresh copy of emacs (without any packages installed) and everything works just fine.

If you want to try it, just brew install emacs --cocoa and clone the repo to ~/.emacs.d

A coworker and I trade snippets of elisp for our configurations over email, and whenever I update the repo on one machine, the other needs to pull it down and evaluate the file (eval-buffer)

I have not found sharing customizations of emacs to be very difficult, but I also don't use any god packages like emacs starter-kit, or prelude (which I haven't heard of). I have let my configuration grow organically.


My emacs automatically downloads and installs all my used packages on first startup on a fresh install. Literally all I have to do on a new box is clone my dotfiles and start emacs.


How do you achieve that?


This is what I have at the top of my ~/.emacs.d/init.el:

  (require 'package)
  (add-to-list 'package-archives
               '("marmalade" . "http://marmalade-repo.org/packages/") t)
  (package-initialize)
  (when (not package-archive-contents)
    (package-refresh-contents))
  (defvar my-packages  '(clojure-mode ...)) ; list of packages
  (dolist (p my-packages)
    (when (not (package-installed-p p))
      (package-install p)))


https://bitbucket.org/zaphar/dotfiles/src/6ce04e6c7bbb03b21f... shows the current setup.

It's gotten more sophisticated over the years. I can probably clean it up some but it works so I haven't touched it :-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: