This is an emacs configuration tree that supports a number of programming languages, particularly Ruby/Rails and other dynamic languages including Clojure, PHP, Python etc.
In particular, I have a nice config for tab autocompletion, and flymake is used to immediately highlight syntax errors in Ruby, HAML, Python, Javascript, PHP and some other languages.
To install, clone this repo to ~/.emacs.d, i.e. ensure that the 'init.el' contained in this repo ends up at ~/.emacs.d/init.el. Before starting up Emacs, be sure to run 'git submodule update --init' to pull in the dependencies that have git repos. Upon starting up Emacs for the first time, further third-party packages will be automatically downloaded and installed, which may require 'svn' to be on your PATH.
Although these config files aren't meant to be a replacement for emacs-starter-kit, some of the tips & tricks contained herein might be useful to others, and there are flags at the top of init.el which can toggle certain features that might annoy people who aren't me, e.g. the "viper" vi emulation.
I use Emacs HEAD on a Mac, but the config should work in other environments too, with any Emacs version >= 23. If not, please file an issue on the github project: https://github.com/purcell/emacs.d
-Steve Purcell
I base my configuration on Purcell's and sync from his frequently.
- 'git submodule update --init' is NOT needed. I removed all the 'git submodule' stuff.
- some major/minor modes for C/C++ developers
- optimized for cross-platform C++ development with CMake and wxWidgets
- emacs-w3m (console browser)
- eim (Chinese pinyin input method)
- org2blog (write wordpress blog with org-mode)
- make the configuration work under Linux and Cygwin
- The configuration will work with Emacs version >=23.4
- remove the dependency on subversion (svn)
- evil-mode and its plugins (Vim key binding)
- yasnippet and my customized snippets
- optional start up with a few heavy weight plugins remove
Purcell won't list all the 3rd party tools this configuration dependent on. I will try to list them HERE,
- w3m (web browser in console)
- jsl (jslint)
- aspell, and dictionary (aspell-en, for example)
- sbcl, for lisp stuff
- tidy
- zip and unzip export org to odt
- clang intellisense of C++ code need clang (http://clang.llvm.org)
- ctags (http://ctags.sourceforge.net) You use ctags to navigate the code.
- GNU Global (http://www.gnu.org/software/global) You use this tool to navigate the code.
- pyflakes
You need pyflakes for real time python syntax check (flymake-python)
Install pip, then
pip install pyflakes
, but on cygwin you need install setuptool in order to install pip. - ditaa, grapviz and planetuml to convert ascii art to diagram and uml.
To install the tools, I suggest using,
- apt-cyg at Cygwin
- homebrew at OS X
- any package manager at Linux
Please note it's totally fine you don't install these CLI tools. Emacs won't crash. ;)
If you find any bug, please file an issue on the github project: https://github.com/redguardtoo/emacs.d
- by default EVIL (Vim emulation in Emacs) is used. You can comment out line containing "(require 'init-evil)" in init.el to unload it.
- Some package cannot be downloaded automatically because of network problem.
You need manually
M-x list-packages
and install it. - I downgraded the yasnippet to an older version because latest yasnippet is not compatible with auto-complete.
- You can speed up the start up by NOT loading some heavy weight
components like evil or yasnippet. All you need to do is add below
code into ~/.bashrc:
alias e=emacs -q --no-splash --eval="(setq light-weight-emacs t)" -l "$HOME/.emacs.d/init.el"
It's publicized at http://blog.binchen.org/?p=430 .