$$\ $$\
$$ | $$ |
$$$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\
$$ _____| \____$$\ $$ __$$\ $$ __$$\ \____$$\ $$ __$$\ $$ __$$\
$$ / $$$$$$$ |$$ | $$ |$$ | $$ | $$$$$$$ |$$ / $$ |$$$$$$$$ |
$$ | $$ __$$ |$$ | $$ |$$ | $$ |$$ __$$ |$$ | $$ |$$ ____|
\$$$$$$$\ \$$$$$$$ |$$$$$$$ |$$$$$$$ |\$$$$$$$ |\$$$$$$$ |\$$$$$$$\
\_______| \_______|\_______/ \_______/ \_______| \____$$ | \_______|
$$\ $$ |
\$$$$$$ |
\______/
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.
$ /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
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
- Go to your cabbage directory
- Execute the installation script again
./scripts/install.ps1
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 enable 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.
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.
~/.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.
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.