/emacs-el-get

Old Emacs configuration of Sean Fisk using el-get.

Primary LanguageEmacs Lisp

Emacs config for Sean Fisk

This is my repository for Emacs. It is a fork of the excellent Emacs Kicker by Dimitri Fontaine. As it's based on the Emacs Kicker, it also significantly leverages the might of Dimitri's powerhouse package-grabber for Emacs, el-get. Thanks Dimitri for both these awesome projects. My Emacs configuration is licensed under the terms of the MIT License.

Focus

My Emacs configuration is geared toward the following purposes:

  • C++ coding
  • Shell scripting
  • EmacsLisp coding
  • Python coding
  • Ruby coding
  • Writing of various text formats (Markdown, Textile)

These will be documented in more detail at a later time.

Compatibility

This Emacs config strives to be compatible with GNU Emacs 23 (stable) on GNU/Linux and Aquamacs 2.x (based on GNU Emacs 23) on Mac OS X. However, I no longer own a Mac so it will be hard for me to test on Aquamacs. Please submit issue reports if you have problems.

Dependencies

Before installing, make sure that required external packages are also installed if you'd like to use the associated el-get package. Listed are Apt packages for Debian and Ubuntu, Homebrew packages for Mac OS X, Ruby Gems, PyPi Packages or other installation methods. I've tried to do dependency checking, so each package won't be installed unless its dependencies exist (i.e., coffee-mode will not get installed if the coffee executable is not found).

el-get apt homebrew gem pypi other
psvn, yasnippet (required) subversion (Debian, Ubuntu) subversion
magit (required) texinfo (Debian, Ubuntu) texinfo
full-ack ack-grep (Debian, Ubuntu) ack
rope / ropemacs (Python refactoring) Pymacs, rope, ropemode, ropemacs
flymake-python (local package) pyflakes | pep8 | flake8 | PyChecker (syntax checkers)
rsense Ruby 1.8.x, Java 1.5+ (See Rsense manual)
haml-mode haml
scss-mode sass
coffee-mode npm install coffee-script
rvm rvm
markdown-mode markdown (Debian, Ubuntu) markdown Only needed for translating Markdown to HTML
  • The beautiful Inconsolata font will be used if it is present. Otherwise, the default is Monaco on Mac and Monospace otherwise. To install Inconsolata on Debian/Ubuntu, simply install the ttf-inconsolata package or levien-inconsolata-fonts on Fedora. On Mac, I belive you must drag the open type file into your fonts folder.

  • I've been having trouble getting magit to work on Mac OS X. I've therefore created the sean_no_magit branch provide the same configuration without magit. Any input on this area is appreciated.

Here's how to install:

  1. Make sure ~/.emacs.d/init.el does not exist, because this repository is intended to replace it.

     cd ~/src/git # or your own projects directory
     git clone git://github.com/seanfisk/emacs.git
     ./install.bash install
    

    Mac OS X users! - this install script uses features specific to the GNU version of the ln executable which are not present in Mac OS X's BSD version (I feel the BSD version is severely crippled). To install correctly, either manually link the files, or use Homebrew to install the coreutils formula. This installs all the GNU coreutils with a prefix of g. Invoke the install script like this:

     brew install coreutils
     LN_EXECUTABLE=gln ./install.bash install
    
  2. Create your own branch for customization. You will almost certainly want to customize your setup.

     $ git checkout -b bartholomew
    

    If you do decide to customize, the file that you will probably want to edit is init.el. It should be well-commented.

  3. Start Emacs with emacs. Once it has started, you will probably see a screen similar to this one:

    el-get install

    This means el-get has been installed and is ready to start installing packages.

  4. Next, kill Emacs (M-x kill-emacs) and start it back up again. Lots of packages should now begin to be installed. At some point, the package installation may stop and you may be show a screen like this:

    End of buffer

  5. Don't worry, this is not unexpected. What you should now do is find the init file with C-x C-f ~/.emacs.d/init.el:

    Find init file

  6. Once you have it open, you can now evaluate the init file without having to restart Emacs with M-x eval-buffer, like so:

    Eval buffer init

  7. If any further errors occur, simply run eval-buffer once again. You may have to restart a couple times as well. It should all work out in the end, and you should see a screen similar to the following:

    Done

  8. If the installation errors out permanently, please submit an issue or contact me.

Installing Python Environment

Installing my Python environment can be a little tricky. Here are steps to make sure it loads properly:

  • Install pythonbrew.
  • pip install rope ropemode
  • pip install http://sourceforge.net/projects/rope/files/ropemacs/0.6/ropemacs-0.6.tar.gz/download
  • pip install ~/.emacs.d/el-get/pymacs
  • pip install pyflakes # if you want to use pyflakes with flymake

Notes

Following the Emacs Kicker, I've changed the default shortcut for kill-emacs of C-x C-c to ido-switch-buffer. I've reassigned kill-emacs to C-x q to keep an easy shortcut. Of course, you can always still close Emacs with M-x kill-emacs.

Credits

Thanks to Dimitri Fontaine for creating the Emacs Kicker and el-get!

Thanks to these people for providing feedback on the config!

  • Siva
  • Paul
  • Jared
  • Kurt
  • Dr. Trefftz

And of course, thanks to GNU and RMS for creating this awesome editor!