Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
etc
lisp
.gitignore
Cask
README.md
global-keys.el
init.el ensure packages are downloaded before initializing them Mar 29, 2017
logo.png initial commit Jul 13, 2016
osx.el
quick-find.el

README.md

My personal Emacs configuration

Based heavily on (e.g. forked directly from) Sebastian Wiesner's awesome Emacs setup: https://github.com/lunaryorn/.emacs.d

With many awesome additions (such as the most-excellent skewer-mode) taken from Christopher Wellons's configs: https://github.com/skeeto/.emacs.d

Makes extensive use of use-package.

Also, I prefer using Cask to install packages rather than rely on use-package to download and byte-compile the packages. When dealing with a large number of packages it can be frustrating to have one byte-compilation snafu that aborts the initial (often lengthy) first-time setup process–– forcing you to restart the process all over again.

Setup — How do you use it?

You need Emacs 25 snapshot builds, straight from Git master. Stable releases of GNU Emacs won’t work, I build GNU Emacs weekly.

$ git clone https://github.com/aculich/.emacs.d.git ~/.emacs.d
$ brew install trash coreutils tern
$ brew install aspell --with-lang-en
$ brew tap caskroom/fonts
$ brew cask install font-xits font-source-code-pro font-source-serif-pro font-consolas-for-powerline font-inconsolata font-monoid
$ cd ~/.emacs.d && cask install

plus all the standard tools for all the various programming languages (sbt, hlint, stack, pandoc, pylint and stuff). Read the comments in init.el for more information.

Layout — Where do you find things?

It’s a single big init.el, containing only use-package declarations for all the built-in and 3rd party packages I use. These declarations have all the configuration and setup for the specific packages.

There’s also lisp/ which has many of lunaryorn’s personal extensions and libraries with custom functions, etc. These libraries are loaded like normal packages with use-package in init.el. Much of the code is useful and I would like to generalize it in the future, but for now it contain’s the lunaryorn namespace prefix.

Highlights — What you should probably copy from this!

  • Very good OS X support, even with stock GNU Emacs, including a font setup that supports Math, Symbols and Coloured Emojis (yay 😍)
  • A well-designed key bindings scheme, inspired by Spacemacs, supported by Which Key Mode and Hydra
  • Rules for buffer displays in display-buffer-alist
  • A very powerful and comprehensive LaTeX setup with AUCTeX
  • Nice configurations for Scala (with Ensime), Emacs Lisp and a couple of other languages
  • Built-in web server you can launch with httpd-start and stop it with httpd-stop. It will serve files from the directory at httpd-root and log messages in s-expression form to the *httpd* buffer.
  • Skewer provides a JavaScript REPL (skewer-repl) and live expression evaluation in JavaScript buffers of an external web browser attached to the built-in web server running in Emacs. It can also do live "evaluation" of CSS (skewer-css-mode) and HTML (skewer-html-mode).

Final words

Have fun, and copy freely! Please feel free to mess around, and take whatever you like! Credits mandatory (respect the license), feedback appreciated!

If you’ve got any questions about this configuration or have a cool extension to share please open an issue. If the issue is related to an upstream source I will check in upstream with skeeto or lunaryorn.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

You can’t perform that action at this time.