Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
purcell's emacs configuration plus C/C++ support
branch: master

This branch is 1434 commits behind redguardtoo:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
defuns
elpa/contrib/scripts
scripts
site-lisp
snippets
.gitignore
.viper
README.md
init-ace-jump-mode.el
init-artbollocks-mode.el
init-auto-complete.el
init-bbdb.el
init-better-registers.el
init-cc-mode.el
init-clojure.el
init-cmake-mode.el
init-common-lisp.el
init-compat.el
init-cperl-mode.el
init-crontab.el
init-csharp-mode.el
init-css.el
init-csv.el
init-ctags.el
init-delicious.el
init-dired.el
init-doxygen.el
init-editing-utils.el
init-eim.el
init-elpa.el
init-emacs-w3m.el
init-emacspeak.el
init-emms.el
init-erlang.el
init-evil.el
init-exec-path.el
init-fill-column-indicator.el
init-flymake.el
init-flyspell.el
init-fonts.el
init-frame-hooks.el
init-gist.el
init-git.el
init-gnus.el
init-growl.el
init-gtags.el
init-gui-frames.el
init-haml.el
init-haskell.el
init-hippie-expand.el
init-ibuffer.el
init-ido.el
init-isearch.el
init-javascript.el
init-keyfreq.el
init-linum-mode.el
init-lisp.el
init-locales.el
init-lua-mode.el
init-markdown.el
init-marmalade.el
init-maxframe.el
init-misc.el
init-mmm.el
init-modeline.el
init-move-window-buffer.el
init-moz.el
init-multiple-cursors.el
init-nxml.el
init-org-mime.el
init-org.el
init-org2blog.el
init-osx-keys.el
init-php.el
init-pomodoro.el
init-proxies.el
init-python-mode.el
init-rails.el
init-rcirc.el
init-recentf.el
init-ruby-mode.el
init-semantic.el
init-sessions.el
init-sh.el
init-site-lisp.el
init-slime.el
init-smarter-compile.el
init-spelling.el
init-sunrise-commander.el
init-textile.el
init-themes.el
init-thing-edit.el
init-twittering-mode.el
init-uml.el
init-undo-tree.el
init-uniquify.el
init-utils.el
init-weibo.el
init-which-func.el
init-windows.el
init-workgroups.el
init-xterm.el
init-yari.el
init-yasnippet.el
init-zencoding-mode.el
init.el

README.md

Steve Purcell's original README

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


Chen Bin's README

I base my configuration on Purcell's and sync from his frequently.

My additions

  • '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

Third party CLI tools Emacs uses

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. ;)

Report bug

If you find any bug, please file an issue on the github project: https://github.com/redguardtoo/emacs.d

Tips

  • 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: sh alias e=emacs -q --no-splash --eval="(setq light-weight-emacs t)" -l "$HOME/.emacs.d/init.el"

My personal Emacs configuration (custom.el)

It's publicized at http://blog.binchen.org/?p=430 .


Something went wrong with that request. Please try again.