121

GitHub - flyingmachine/emacs-for-clojure

 6 years ago
source link: https://github.com/flyingmachine/emacs-for-clojure
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

WARNING this does not work currently

A lot has changed since I last put significant effort into this repo, and as a result this emacs config is broken. I hope to get it working again soon (as of 2022-04-02).

If you're completely new to Clojure and emacs, I recommend using Calva, a plugin for VSCode, rather than trying to learn both Clojure and Emacs at the same time. Other options:

this is a Clojure-friendly emacs config

If you're new to emacs, check out this introductory tutorial!

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 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:

    (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 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. 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
    • 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. 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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK