Skip to content
This repository

get the maximum out of emacs

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 bundles
Octocat-spinner-32 lib
Octocat-spinner-32 misc
Octocat-spinner-32 scripts
Octocat-spinner-32 templates
Octocat-spinner-32 tools
Octocat-spinner-32 vendor
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 cabbage.el

                                      $$\       $$\
                                      $$ |      $$ |
                   $$$$$$$\  $$$$$$\  $$$$$$$\  $$$$$$$\   $$$$$$\   $$$$$$\   $$$$$$\
                  $$  _____| \____$$\ $$  __$$\ $$  __$$\  \____$$\ $$  __$$\ $$  __$$\
                  $$ /       $$$$$$$ |$$ |  $$ |$$ |  $$ | $$$$$$$ |$$ /  $$ |$$$$$$$$ |
                  $$ |      $$  __$$ |$$ |  $$ |$$ |  $$ |$$  __$$ |$$ |  $$ |$$   ____|
                  \$$$$$$$\ \$$$$$$$ |$$$$$$$  |$$$$$$$  |\$$$$$$$ |\$$$$$$$ |\$$$$$$$\
                   \_______| \_______|\_______/ \_______/  \_______| \____$$ | \_______|
                                                                    $$\   $$ |
                                                                    \$$$$$$  |


cabbage helps you to manage your emacs configuration and allows you to stay in sync with other fellow emacs users. It is designed to be a community-driven framework to build your emacs configuration. The ultimate goal of cabbage is to provide a hassle-free, fast and robust emacs setup.

=> Google Group


We want to get cabbage working under as many different circumstances as possible. We are aiming to make the configuration as platform independent as possible. So all you need to use cabbage is Emacs 24 or later.


Automatic installer

$ /usr/bin/env bash -c "$(curl -fsSL"

Developer installation

$ git clone
$ cd cabbage
$ ./scripts/

Installation on Windows (PowerShell)

If you don't yet have PowerShell; it is part of the Windows Management Framework and you can get it from the Microsoft download center: Windows Management Framework 3.0

All tested and developed with GNU Emacs 24.1.1 from If you're using another Emacs version under windows, your configuration directories might not match. If this is the case, please report the issue and we will try to fix it.

Automatic installation

> (new-object Net.WebClient).DownloadString("") | iex

Developer installation

> git clone
> cd cabbage
> ./scripts/install.ps1

Updating an existing installation

  1. Go to your cabbage directory
  2. Execute the installation script again

Manual installation on Windows

Seriously, if you're not using PowerShell under Windows, you're probably doing it wrong. Here are however the manual installation instructions.

  1. You need to have emacs and git installed
  2. Clone the cabbage repository with git: git clone
  3. Pull down the submodules: cd the cabbage directory, then run git submodule init && git submodule update
  4. Create a .emacs.d directory in your %APPDATA% folder
  5. Copy the file templates/init.el from cabbage to %APPDATA%/.emacs.d/init.el
  6. Replace "CABBAGE-DIR/" in the init.el with the path to the cabbage checkout
  7. Copy the contents of the templates/emacs.d directory to your %APPDATA%/.emacs.d directory


cabbage fundamental organization are bundles. You can eneable and disable the configuration on a per bundle basis. The bundles live in cabbage/bundles. The active bundles are configured in your ~/.emacs.d/config.el file in the cabbage-bundles variable. Check out the bundles directory to see whats currently available.

Your Bundles are welcome too!

if you got a pice of emacs functionality, that you think might be usefull for other people, please package it up in a bundle and open a pull-request.

Local bundles

It also to create private / local bundles if something does not belong into the cabbage core. It is quite easy:

  • Create a local bundles directory, e.g. ~/.emacs.d/bundles
  • Create your bundle, for example ~/.emacs.d/bundles/secret-stuff/bundle.el
  • Register the bundles directory at the top of your ~/.emacs.d/local.el by adding this line:

    (add-to-list 'cabbage-bundle-dirs (expand-file-name "~/.emacs.d/bundles/"))

  • Add secret-stuff to your bundles list in ~/.emacs.d/config.el

  • You can also create a local vendors directory and register it with:

    (add-to-list 'cabbage-vendor-dirs (expand-file-name "~/.emacs.d/vendor/"))
  • Take a look on how the existing bundles work.

Cheat Sheet

There is a cheat-sheet available for the default keyboard shortcuts that come with cabbage.


If you are interested in helping out, please have a look at our Contribution Guidelines. alpha

Something went wrong with that request. Please try again.