72 lines
3.2 KiB
Markdown
72 lines
3.2 KiB
Markdown
# this is a Clojure-friendly emacs config
|
|
|
|
If you're new to emacs, check out
|
|
[this introductory tutorial](http://www.braveclojure.com/basic-emacs/)!
|
|
|
|
## Installing
|
|
|
|
1. Close Emacs.
|
|
2. Delete `~/.emacs` or `~/.emacs.d` if they exist. (Windows users, your
|
|
emacs files will probably live in
|
|
`C:\Users\your_user_name\AppData\Roaming\`. So, for example, you
|
|
would delete `C:\Users\jason\AppData\Roaming\.emacs.d`.) This is
|
|
where Emacs looks for configuration files, and deleting these files
|
|
and directories will ensure that you start with a clean slate.
|
|
3. Download the Emacs
|
|
[configuration zip file](https://github.com/flyingmachine/emacs-for-clojure/archive/book1.zip)
|
|
and unzip it. Its contents should be a folder,
|
|
`emacs-for-clojure-book1`. Run `mv path/to/emacs-for-clojure-book1
|
|
~/.emacs.d`.
|
|
|
|
Then open Emacs.
|
|
|
|
## Upgrading
|
|
|
|
Before upgrading, ensure that your `.emacs.d` directory is under
|
|
version control so that you can always revert to a known good state.
|
|
|
|
To upgrade:
|
|
|
|
1. Edit `.emacs.d/init.el`, adding these lines after line 12:
|
|
|
|
```elisp
|
|
(add-to-list 'package-archives
|
|
'("melpa-stable" . "http://stable.melpa.org/packages/") t)
|
|
|
|
(add-to-list 'package-pinned-packages '(cider . "melpa-stable") t)
|
|
```
|
|
|
|
2. Close Emacs.
|
|
3. Run `rm -Rf .emacs.d/elpa/cider-*`
|
|
4. Open Emacs. You'll probably see some errors and your theme won't
|
|
load. That's ok.
|
|
5. In Emacs, run `M-x package-refresh contents`.
|
|
6. In Emacs, run `M-x package-install cider`.
|
|
7. Close and re-open Emacs.
|
|
|
|
That should install the latest version. Enjoy!
|
|
|
|
## Organization
|
|
|
|
I've tried to separate everything logically and document the purpose
|
|
of every line. [`init.el`](./init.el) acts as a kind of table of
|
|
contents. It's a good idea to eventually go through `init.el` and the
|
|
files under the `customizations` directory so that you know exactly
|
|
what's going on.
|
|
|
|
## Supporting CSS, HTML, JS, etc.
|
|
|
|
Emacs has decent support for CSS, HTML, JS, and many other file types out of the box, but if you want better support, then have a look at [my personal emacs config's init.el](https://github.com/flyingmachine/emacs.d/blob/master/init.el). It's meant to read as a table of contents. The emacs.d as a whole adds the following:
|
|
|
|
* [Customizes js-mode and html editing](https://github.com/flyingmachine/emacs.d/blob/master/customizations/setup-js.el)
|
|
* Sets indentation level to 2 spaces for JS
|
|
* enables subword-mode so that M-f and M-b break on capitalization changes
|
|
* Uses `tagedit` to give you paredit-like functionality when editing html
|
|
* adds support for coffee mode
|
|
* [Uses enh-ruby-mode for ruby editing](https://github.com/flyingmachine/emacs.d/blob/master/customizations/setup-ruby.el). enh-ruby-mode is a little nicer than the built-in ruby-mode, in my opinion.
|
|
* Associates many filenames and extensions with enh-ruby-mode (.rb, .rake, Rakefile, etc)
|
|
* Adds keybindings for running specs
|
|
* Adds support for YAML and SCSS using the yaml-mode and scss-mode packages
|
|
|
|
In general, if you want to add support for a language then you should be able to find good instructions for it through Google. Most of the time, you'll just need to install the "x-lang-mode" package for it.
|