A detailed introduction to Kakoune for the aspiring power user

birdculture1 pts0 comments

kakoune is a text editor

kakoune is a text editor

a detailed introduction for the aspiring power user

31 minute read

2026-05-12

nulloldr>

introduction

Welcome!

My goal with this article is to help you develop a comprehensive understanding<br>of the Kakoune text editor: what it is, how it works, and why it has<br>that design.

Although this is not exactly a tutorial, we build up these concepts gradually,<br>and plenty concrete usage examples and demo videos are provided to supplement<br>the discussion.

This piece is quite long, and densely loaded with information. I suggest<br>treating it like a long-term learning resource you can chip away at, rather than<br>trying to tackle it all in one session.

I hope this ends up being useful, both to new users and existing Kakoune<br>enthusiasts. If you have any questions or comments about this post, please don’t<br>hesitate to contact me.

This article was written without AI assistance. If you are interested in a more<br>human internet, please consider subscribing to my<br>RSS feed to be notified of future posts.

What is kakoune?

beyond vim

What does subject : verb order even mean?

kakoune’s inverted grammar

orthogonality and atomic edits

A deeper dive into keys & commands<br>executing keys

evaluating commands

commands are keys

multiple selections

registers & marks

iterative learning

a server-client editor

editing with pipes

command expansions

writing plugins

shell expansions

conclusion<br>acknowledgments

further reading

automatically generating demo videos

What is kakoune?

Kakoune (French: [kakun]) is a modal screen-based text editor created in<br>2011 by French programmer Maxime Coste1, better known as<br>mawww. Having begun its life as a C++ rewrite of<br>Vim, it has since evolved into a project with a strong identity and unique<br>design goals.

A non-exhaustive overview of Kakoune’s most interesting features2:

Multiple selections and multi-cursor editing are first-class (regex<br>filtering, splitting, aligning, etc.).

Interactivity and experimentation are core design principles .

Orthogonal design with powerful editing primitives (selection rotation,<br>indentation leveling, case manipulation…)

Client/Server architecture in which the windows of your session are managed<br>by your terminal or window manager (tmux, i3, niri…).

Highly extendable with an easy-to-learn hook & macro system (unofficially<br>called “Kakscript”).

Large focus on Unix philosophy ; Kakoune not only integrates with, but<br>relies on standard Unix tools.

note on helix

Kakoune has served as a major inspiration for the<br>Helix editor. However, Helix has<br>diverged on some key design points, and the two cannot be discussed<br>interchangeably. Thus, Helix is outside the scope of this discussion. With that<br>said, although much of this article won’t apply to Helix, some of it might, due<br>to its shared DNA with Kakoune, so Helix users may still find this discussion<br>valuable.

beyond vim

Let’s consider “Vim motions” as an editing language. This “core” doesn’t need<br>to be surrounded by Vim; there are many editors (VS Code, JetBrains…) that<br>support Vim motions. Thus, a user that learns Vim motions in one tool can<br>quickly adapt to another tool that supports them.

A side effect of this is that, because of Vim’s ubiquity, a lot of people have<br>come to view “Vim-like bindings” as the standard for keyboard-driven,<br>modal editing. In other words, users expect editors to be mostly compatible with<br>their existing “Vim binding muscle memory”. Some people won’t consider an editor<br>that expects them to change their approach.

I think that’s a shame, because although I’m sure Vim is so popular for a<br>reason, we can certainly do better. No design is immune to being iterated on<br>and improved. Kakoune does this in an innovative way: by inverting the<br>subject–verb order .

What does subject : verb order even mean?

When people say they expect “Vim bindings”, what they really mean isn’t specific<br>keys… sure, we’re used to hjkl for movement, but we can get used to<br>something else just as fast. What matters most is Vim’s modal text editing<br>grammar .

It distinguishes between insert mode (regular typing) and normal mode: in<br>which keys comprise words composed into sentences that describe text edits<br>in the form verb followed by subject.

This structure closely mirrors English, so it feels natural for us to reason<br>about. For example, we might express “delete this word” as dw: d for<br>“delete” as the verb, and w for “until the start of the next word” as the<br>subject.

There’s no shortage of<br>excellent writing on<br>Vim’s text editing language.<br>However, let me briefly challenge the intuitiveness of verb : subject for text<br>editing.

How often have you found yourself in the following situation? You’re editing the<br>middle of a sentence, and now you want to delete from the cursor up to a certain<br>word. You know exactly how far to go; since you can clearly see the target with<br>your eyes. The challenge: how to share this information with the editor?

Well, the optimal (Vim-like)...

kakoune editing text editor design subject

Related Articles