$$\ $$\ $$ | $$ | $$$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$ _____| \____$$\ $$ __$$\ $$ __$$\ \____$$\ $$ __$$\ $$ __$$\ $$ / $$$$$$$ |$$ | $$ |$$ | $$ | $$$$$$$ |$$ / $$ |$$$$$$$$ | $$ | $$ __$$ |$$ | $$ |$$ | $$ |$$ __$$ |$$ | $$ |$$ ____| \$$$$$$$\ \$$$$$$$ |$$$$$$$ |$$$$$$$ |\$$$$$$$ |\$$$$$$$ |\$$$$$$$\ \_______| \_______|\_______/ \_______/ \_______| \____$$ | \_______| $$\ $$ | \$$$$$$ | \______/
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-/emacs-version independent as possible. So all you need to use cabbage is Emacs.
$ /usr/bin/env bash -c "$(curl -fsSL https://raw.github.com/senny/cabbage/master/scripts/install.sh)"
$ git clone https://github.com/senny/cabbage.git $ cd cabbage $ ./scripts/install.sh
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 http://ftp.gnu.org/gnu/emacs/windows/. 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.
> (new-object Net.WebClient).DownloadString("https://raw.github.com/senny/cabbage/master/scripts/install.ps1") | iex
> git clone https://github.com/senny/cabbage.git > cd cabbage > ./scripts/install.ps1
Updating an existing installation
- Go to your cabbage directory
- 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.
- You need to have emacs and git installed
- Clone the cabbage repository with git:
git clone https://github.com/senny/cabbage.git
- Pull down the submodules: cd the cabbage directory, then run
git submodule init && git submodule update
- Create a .emacs.d directory in your %APPDATA% folder
- Copy the file templates/init.el from cabbage to %APPDATA%/.emacs.d/init.el
- Replace "CABBAGE-DIR/" in the init.el with the path to the cabbage checkout
- 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
The following bundles are supported currently:
- ergonomic (use ergonomic keybindings to use emacs more efficently)
- accessibility (make emacs behave the way you expect it and get distractions out of the way)
- git (git handling with magit)
- lisp (to write elisp)
- python (to write python)
- projects (simple projects management stuff)
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.
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.
- Create your bundle, for example
Register the bundles directory on top of your
~/.emacs.d/config.el, so that it is set before you define your
cabbage-bundles, by adding this line:
(add-to-list 'cabbage-bundle-dirs (expand-file-name "~/.emacs.d/bundles/")
secret-stuffto your bundles list.
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.
If you are interested in helping out, please have a look at our Contribution Guidelines.