public
Description: All the code you need to get started, with an emphasis on dynamic languages.
Homepage:
Clone URL: git://github.com/technomancy/emacs-starter-kit.git
technomancy (author)
Fri Jun 19 14:09:17 -0700 2009
commit  a46328f2ad0cb437bf22aaf42f4f25f53126102f
tree    be18a2ab175a346b7897b05743546b4214c5131d
parent  8ddc188e076cd1dea2e907ce04a89c96b6efa25d
name age message
file .gitignore Tue May 26 19:35:46 -0700 2009 Ignore a few more annoying things. [technomancy]
file COPYING Tue Nov 18 10:08:18 -0800 2008 initial commit [technomancy]
file README.markdown Thu Feb 26 10:05:20 -0800 2009 Instructions for how to work around ELPA upgrad... [technomancy]
file TODO Wed Jan 21 09:17:30 -0800 2009 Doc updates, textile-mode, and a haml fix. [technomancy]
file dominating-file.el Tue May 19 17:19:48 -0700 2009 Doh, was missing a provide. [technomancy]
directory elpa-to-submit/ Fri Jun 19 14:09:17 -0700 2009 Bundle updated paredit-mode v21. [technomancy]
directory elpa/ Thu Dec 04 08:41:50 -0800 2008 Rearranged ELPA code/docs. [technomancy]
file init.el Tue May 19 16:32:51 -0700 2009 Backport locate-dominating-file to Emacs22 if n... [technomancy]
file package.el Fri Feb 20 13:56:06 -0800 2009 Looks like package.el 0.9 did not fix the activ... [technomancy]
file starter-kit-bindings.el Wed Jun 03 08:56:26 -0700 2009 Fixed keybindings to kdb style [Ed Singleton]
file starter-kit-defuns.el Tue May 26 14:07:04 -0700 2009 Don't let hooks interfere with autoload generat... [technomancy]
file starter-kit-elpa.el Tue Jun 02 11:55:51 -0700 2009 Work around an ELPA bug people are seeing. [technomancy]
file starter-kit-eshell.el Tue Dec 23 11:19:45 -0800 2008 eshell-vc seems to break when required before e... [technomancy]
file starter-kit-js.el Tue Jun 16 11:06:24 -0700 2009 Switch from js2-mode to espresso. [technomancy]
file starter-kit-lisp.el Tue Jun 16 11:14:22 -0700 2009 Merge from lrenn to add lib jars to classpath. [technomancy]
file starter-kit-misc.el Wed Jun 03 08:56:08 -0700 2009 Set unfinished commands to show as you are typi... [Ed Singleton]
file starter-kit-perl.el Wed Feb 11 09:31:27 -0800 2009 Whoa; don't assume .cgi is perl. [technomancy]
file starter-kit-registers.el Tue Nov 18 10:08:18 -0800 2008 initial commit [technomancy]
file starter-kit-ruby.el Wed Mar 11 10:41:26 -0700 2009 Make coding-hook a real hook instead of a defun. [technomancy]
README.markdown

Emacs Starter Kit

This should provide a saner set of defaults than you get normally with Emacs. It's intended for beginners, but it should provide a reasonable working environment for anyone using Emacs for dynamic languages. The main advantage of the Starter Kit is that it provides better default settings and bundles many useful libraries.

The latest version is at http://github.com/technomancy/emacs-starter-kit/

Learning

This won't teach you Emacs, but it'll make it easier to get comfortable. To access the tutorial, press control-h followed by t.

You may also find the PeepCode Meet Emacs screencast helpful. The Emacs Wiki is also very handy.

Installation

  1. Install Emacs (at least version 22) Use your package manager if you have one. Otherwise, Mac users should get it from Apple. Windows users can get it from GNU.
  2. Move the directory containing this file to ~/.emacs.d [1] (If you already have a directory at ~/.emacs.d move it out of the way and put this there instead.)
  3. Launch Emacs!

If you are missing some autoloads after an update (should manifest itself as "void function: foobar" errors) try M-x regen-autoloads.

If you want to keep your regular ~/.emacs.d in place and just launch a single instance using the starter kit, try the following invocation:

$ emacs -q -l ~/src/emacs-starter-kit/init.el

Note that having a ~/.emacs file might override the starter kit loading, so if you've having trouble loading it, make sure that file is not present.

Structure

The init.el file is where everything begins. It's the first file to get loaded. The starter-kit-* files provide what I consider to be better defaults, both for different programming languages and for built-in Emacs features like bindings or registers.

Files that are pending submission to ELPA are bundled with the starter kit under the directory elpa-to-submit/. The understanding is that these are bundled just because nobody's gotten around to turning them into packages, and the bundling of them is temporary. For these libraries, autoloads will be generated and kept in the loaddefs.el file. This allows them to be loaded on demand rather than at startup.

There are also a few files that are meant for code that doesn't belong in the Starter Kit. First, the user-specific-config file is the file named after your user with the extension ".el". In addition, if a directory named after your user exists, it will be added to the load-path, and any elisp files in it will be loaded. Finally, the Starter Kit will look for a file named after the current hostname ending in ".el" which will allow host-specific configuration. This is where you should put code that you don't think would be useful to everyone. That will allow you to merge with newer versions of the starter-kit without conflicts.

Emacs Lisp Package Archive

Libraries from ELPA are preferred when available since dependencies are handled automatically, and the burden to update them is removed from the user. In the long term, ideally everything would be installed via ELPA, and only package.el would need to be distributed with the starter kit. (Or better yet, package.el would come with Emacs...) See starter-kit-elpa.el for a list of libraries that are pending submission to ELPA. Packages get installed in the elpa/ directory.

There's no vendor/ directory in the starter kit because if an external library is useful enough to be bundled with the starter kit, it should be useful enough to submit to ELPA so that everyone can use it, not just users of the starter kit.

Sometimes packages are removed from the Starter Kit as they get added to ELPA itself. This has occasionally caused problems with certain packages. If you run into problems with such a package, try removing everything from inside the elpa/ directory and invoking M-x starter-kit-elpa-install in a fresh instance.

Contributing

If you know your way around Emacs, please try out the starter kit as a replacement for your regular dotfiles for a while. If there's anything you just can't live without, add it or let me know so I can add it. Take a look at what happens in init.el to get started.

Also: see the file TODO. Helping submit new libraries to ELPA is the easiest way to help out. There are two ways you can do this: either take new libraries and make them ready for ELPA, dropping them in the elpa-to-submit directory or take files that are already in elpa-to-submit, ensuring all their dependencies are correctly loaded into ELPA, and sending them to the ELPA maintainer. There are details at http://tromey.com/elpa/upload.html for how ELPA submission works. Grep the project for TODO for other things.

Files are licensed under the same license as Emacs unless otherwise specified. See the file COPYING for details.

The latest version is at http://github.com/technomancy/emacs-starter-kit/

On Unix, /home/$USER/.emacs.d, on windows Documents and Settings/%your user name%/Application Data