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.
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.
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.
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 orlevien-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 thesean_no_magit
branch provide the same configuration withoutmagit
. Any input on this area is appreciated.
Here's how to install:
-
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 thecoreutils
formula. This installs all the GNU coreutils with a prefix ofg
. Invoke the install script like this:brew install coreutils LN_EXECUTABLE=gln ./install.bash install
-
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. -
Start Emacs with
emacs
. Once it has started, you will probably see a screen similar to this one:This means
el-get
has been installed and is ready to start installing packages. -
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: -
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
: -
Once you have it open, you can now evaluate the init file without having to restart Emacs with
M-x eval-buffer
, like so: -
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: -
If the installation errors out permanently, please submit an issue or contact me.
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
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
.
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!