Skip to content

arthurl/emacs.d

 
 

Repository files navigation

Arthur's Emacs configuration

While any text editor can save your files, only Emacs can save your soul. — Per Abrahamsen

Credits: This configuration is based off Steve Purcell's config, which I highly recommend as a starter.

I have carefully tried to keep Emacs' start-up time to the minimum. All modifications detailed below add approximately 0.2s start-up time compared to Steve's original code (which took about 2.8s on my laptop). This is done by deferring the loading of most (all?) new packages added, using autoload. The trade-off is that you will notice a slight pause the first time you use that mode (but not on subsequent times).

All notes below apply only to this configuration (i.e. not Steve's) unless explicitly stated.

Note: Unless otherwise stated, "optional" means all other components, including those listed here, will still work.

Haskell

Haskell-mode docs.

External dependencies

  • (Optional) hdevtools executable for flycheck-hdevtools (in Steve's config). No problems if hdevtools is not available.
  • (Optional) structured-haskell-mode executable for nicer code indentation. If the executable structured-haskell-mode is not available, regular haskell-indentation-mode will be used. The default colour scheme in structured-haskell-mode is hideous, so I've changed that if you're using the solarised-light theme. For now, colours do not change if you change themes unless init.el is re-evaluated or you restart Emacs.

    Note: The colours I've chosen are suitable only for light themes. I haven't found a way to detect light themes in general, so I've only enabled it for solarised-light.

C/C++

External dependencies

  • ("Optional") clang. Without this, you have nothing. It's "optional" in the sense that not having clang wouldn't affect your, say, Haskell or poetry writing experience in Emacs. Were you looking for MS notepad with Emacs keybindings?

  • (Optional; requires clang and cmake) rtags for superior tagging. You will need to have the rtags daemon socket activated, using launchd on OS X or systemd on Linux. Windows, start rdm manually yourself. The daemon could be run within Emacs itself, but I just didn't like the idea.

    Note: cmake-ide does have some code to attempt to detect if rdm is already running on the system. However, it does not work on OS X (and probably Windows) because process-attributes is not supported by Emacs on those platforms.

  • cmake-ide for editing CMake configuration files.

Python

Docs WIP.

Projectile

Docs WIP.

  • (Optional) System utilities: grep, cut, uniq, ag

Other functions

  • kill-process-interactive
  • remote-shell
  • sudo-reopen-current-file

About

Purcell's emacs config with a few improvements

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 99.6%
  • Shell 0.4%