Emacs Carnival: Completion
*The topic for the February 2026 Emacs Carnival is 'completion' - hosted by Sacha Chua.
Completion is a very interesting topic for me. As it made me realise I've never really understood what it is or how it works in Emacs.
I use it all the time - it's everywhere in Emacs - I just don't much of a clue how it works behind the scenes.
I think partly this stems from using Emacs distributions (I use Spacemacs and Doom Emacs) where completion Just Works. So beyond the occasional tweak for a particular package (e.g. completion at point of roam links not working) I've never had to look behind the curtain.
But spend long enough in Spacemacs and you'll learn that something called helm is doing something for you related to completion, and maybe company is too, but you're not sure what does what and how or why.
And spend just a little bit of time in the Emacs community and you'll soon see talk of completion and mention of exciting and mysterious packages like ivy, vertico, consult, counsel, orderless, corfu, etc. And you'll feel confused… but intrigued.
So this month's theme is a great learning experience for me.
Sacha's post already started things off with some useful distinction and definitions of the two types of completion in Emacs:
minibuffer completion, which happens in the small window at the bottom of the screen whenever you use M-x, find a file, etc.
in-buffer completion, like when you expand an abbreviation, insert a snippet, or fill in the rest of a variable name.
1. Mini buffer completion
The default layer for completion in Spacemacs is helm. There are also Ivy and Compleseus layers.
2. Elsewhere
2.1. In my garden
Notes that link to this note (AKA backlinks).
