dctrud's Random Road

Occasional unimportant nonsense.

2020-05-18 - Some Nice Emacs Packages

I started using Emacs seriously in 2016 with Spacemacs, and loaded it up with layers bringing in all sorts of functionality.

Spacemacs was generally a great experience, but pretty slow. This wasn't really Spacemacs' fault - in work at the time I was using Emacs on a Windows laptop, or on Linux machines with NFS mounted home directories. Neither of these environments is great for a setup that needs to lazy-load many packages that consist of small elisp files. Windows also has some challenges, with some of the eye-candy packages really affecting the responsiveness of the editor. I played around with Spacemacs configs quite a lot in my evenings. After a while I moved to other editors for coding (mainly Python and C), and kept a small Spacemacs config for pretty much only org-mode things.

I came back to Emacs properly when I changed jobs and was working almost entirely on Linux machines. This time around I started from hzenginx/spacelite, a repo on GitHub with an emacs config that has spacemacs type bindings. I've gradually stripped things out of this, and added other stuff to arrive at dctrud/spacelite - my messy, and evolving config.



Here are a few of the nice packages out there I'm using now:



Deft provides an interface to quickly browse, find, and create notes. I have it setup to work with an Org/notes directory where I put long-form notes in individual .org files. I have deft bound to f8 globally so I can jump into note-taking or find past notes easily. The screencast gives a good idea of what it's about.

deft screencast



I've gone back to using stock emacs themes, either the default or 'adwaita' and like the old-fashioned grey look. The stock modeline is very ugly, though, and not very practical.

Having jumped around more complicated options I came across the minimal mood-line. It's very simple (and therefore fast) but contains all the stuff I want to see.



lsp-mode is what made it possible for me to move back to Emacs again, and stay there happily. I work with Go, and as the language has changed toward Go modules the slightly poor experience with go-mode using various CLI tools for refactoring etc. became more broken. The gopls language server now really has to be used for nice completion, syntax checking, etc.

I'd played with lsp-mode before, but it was buggy and quite slow. Now that the Emacs 27 pre-releases have optimized JSON handling it has become very smooth and quick. It's also seems very reliable these days.

If you haven't been impressed with lsp-mode in the past, it's definitely worth grabbing an Emacs 27 pre-test build and trying out the latest lsp-mode from Melpa.

Index of Posts