Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
purcell's emacs configuration plus C/C++ support, Sylvester reversion.
branch: master

This branch is 117 commits ahead, 1176 commits behind redguardtoo:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
defuns
site-lisp
snippets
.gitignore
.viper
README.md
ede-projects.el
init-ace-jump-mode.el
init-anything.el
init-artbollocks-mode.el
init-auto-complete.el
init-bbdb.el
init-better-registers.el
init-cc-mode.el
init-cedet.el
init-clojure.el
init-cmake-mode.el
init-common-lisp.el
init-company-mode.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-dot.el
init-doxygen.el
init-doxymacs.el
init-ecb.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-header.el
init-helm.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-capture.el
init-org-clock.el
init-org-html.el
init-org-mime.el
init-org-pdf.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-term-mode.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
srecode-map.el

README.md

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

General

I base my emacs.d on Steve Purcell's emacs.d and synchronize from his once a month.

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 and old ~/.emacs does NOT exist.

Thanks to Purcell, this emacs.d has fancy features for most script languages like Clojure, Python, Lisp, PHP, Javascript, Ruby etc. Purcell is basically a web geek who use all the modern web technologies.

I will support all the languages a desktop developer may use, like C++, Java, Lua, Objective-C etc.

Features

  • git or subversion is NOT needed. I removed all the 'git submodule update' stuff.
  • enhance 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)

Third party CLI tools Emacs uses

Purcell won't list all the 3rd party tools you need install. I will

  • The configuration will work with Emacs version >=23.3.1
  • evil-mode and its plugins (Vim key binding)
  • yasnippet and my customized snippets
  • start up WITHOUT heavy weight plugins (OPTIONAL)

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 some dictionary like aspell-en
  • tidy
  • zip&unzip export org to odt
  • clang auto-complete/intellisense by using clang (http://clang.llvm.org)
  • pyflakes install pip, then pip install pyflakes, but on cygwin you need install
  • aspell, and dictionary (aspell-en, for example)
  • sbcl (lisp environment)
  • tidy (html tidy program)
  • csslint (install node.js, then npm install -g csslint
  • 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 C/C++/Java/Objective-C 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 custom.el

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

Sylvester's README

  • some keys' binding
  • orgmode publishing configuration
  • some other misc...

Something went wrong with that request. Please try again.