$$\ $$\
$$ | $$ |
$$$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\
$$ _____| \____$$\ $$ __$$\ $$ __$$\ \____$$\ $$ __$$\ $$ __$$\
$$ / $$$$$$$ |$$ | $$ |$$ | $$ | $$$$$$$ |$$ / $$ |$$$$$$$$ |
$$ | $$ __$$ |$$ | $$ |$$ | $$ |$$ __$$ |$$ | $$ |$$ ____|
\$$$$$$$\ \$$$$$$$ |$$$$$$$ |$$$$$$$ |\$$$$$$$ |\$$$$$$$ |\$$$$$$$\
\_______| \_______|\_______/ \_______/ \_______| \____$$ | \_______|
$$\ $$ |
\$$$$$$ |
\______/
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
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 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.
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.
If you are interested in helping out, please have a look at our Contribution Guidelines.