HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mawww
kakoune
C++2014–2026
mawww / kakoune

kakoune

mawww's experiment for a better code editor

62Distinct people
75Mentions
0Explicit recommenders
11.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

mawww's experiment for a better code editor

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year75 dated mentions

Observed mentions: 2014-02-24 00:54:18 UTC to 2026-10-28 18:40:09 UTC.

0510152014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC211
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC1129
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC13112
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC808
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC505
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC514
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC606
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC11110
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC606
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC312
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Kakoune Table of Contents TL;DR Introduction Features Screenshots Getting started Building Installing Running Basic Interaction Selections Normal Mode Insert Mode Movement Appending Using Counts Disabling Hooks Changes Goto Commands View commands Marks Jump list Multi Selection Object Selection Commands Basic Commands Multiple commands Configuration & Autoloading Kakrc Color Schemes Options Advanced topics Faces Registers Macros Search selection Regex syntax Exec and Eval Insert mode completion Escape to normal mode Highlighters Hooks Key Mapping Defining Commands and Aliases FIFO Buffers Credits TL;DR https://kakoune.org Modal editor — Faster as in fewer keystrokes — Multiple selections — Orthogonal design git clone https://github.com/mawww/kakoune.git cd kakoune make ./src/kak See https://github.com/mawww/golf for Kakoune solutions to vimgolf challenges, regularly beating the best Vim solution. See the design document for more information on Kakoune’s philosophy and design. Introduction Kakoune is a code editor that implements Vi’s "keystrokes as a text editing language" model. As it is also a modal editor, it is somewhat similar to the Vim editor (after which Kakoune was originally inspired). Kakoune can operate in two modes: normal and insertion. In insertion mode, keys are directly inserted into the current buffer. In normal mode, keys are used to manipulate the current selection and to enter insertion mode. Kakoune has a strong focus on interactivity. Most commands provide immediate and incremental results, while being competitive with Vim in terms of keystroke count. Kakoune works on selections, which are oriented, inclusive ranges of characters. Selections have an anchor and a cursor. Most commands move both of them except when extending selections, where the anchor character stays fixed and the cursor moves around. See https://vimeo.com/82711574 Join us on libera IRC #Kakoune Features Multiple selections as a central way of interacting Powerful selection manipulation primitives Select all regex matches in current selections Keep selections containing/not containing a match for a given regex Split current selections with a regex Text objects (paragraph, sentence, nestable blocks) Powerful text manipulation primitives Align selections Rotate selection contents Case manipulation Indentation Piping each selection to external filter Client-Server architecture Multiple clients on the same editing session Use tmux, zellij, kitty, wezterm or your X11/Wayland window manager to manage splits/panes by spawning clients connected to the same session Simple interaction with external programs Automatic contextual help Automatic as you type completion Macros Hooks Syntax Highlighting Supports multiple languages in the same buffer Highlight a buffer differently in different windows Screenshots Figure 1. Kakoune in i3 Figure 2. Kakoune in tmux Getting started Building Kakoune’s dependencies are: A C++20 compliant compiler (GCC >= 10.3 or clang >= 11) along with its associated C++ standard library (libstdc++ >= 10 or libc++) To build, just type make in the root directory. To generate man pages, type make man in the root directory. Kakoune can be built on Linux, MacOS, and Cygwin. Due to Kakoune relying heavily on being in a Unix-like environment, no native Windows version is planned. Installing In order to install kak on your system, rather than running it directly from its source directory, type make install. You can specify the PREFIX and DESTDIR if needed. Tip Homebrew (macOS) or Linuxbrew brew install kakoune Tip MacPorts (macOS) sudo port selfupdate sudo port install kakoune Tip Fedora supported versions and Rawhide dnf install kakoune Tip Fedora daily builds Use the copr repository. dnf copr enable jkonecny/kakoune dnf install kakoune Tip RHEL/CentOS 8 Kakoune can be found in the EPEL8 repositories. dnf install kakoune Tip Arch Linux Kakoune is found in the repositories. pacman -S kakoune Tip Gentoo Kakoune is found in portage as app-editors/kakoune. emerge kakoune Installation and Gentoo specific documentation is available. Tip Exherbo cave resolve -x repository/mawww cave resolve -x kakoune Tip openSUSE Kakoune can be found in the repositories. sudo zypper install kakoune Tip Ubuntu Kakoune can be found in the Ubuntu repositories. sudo apt install kakoune If you want to compile from source on 20.04 or earlier, you must force the build to use GCC 10, which is not the default. Also, make sure you have .local/bin in your path so that kak is available after the installation. git clone https://github.com/mawww/kakoune.git && cd kakoune/src CXX=g++-10 make make PREFIX=$HOME/.local install Tip Debian Kakoune can be found in Debian 9 (Stretch) and later releases. sudo apt install kakoune Tip FreeBSD Kakoune is available in the official ports tree as editors/kakoune. A binary package is also available and can be installed with pkg install kakoune Tip OpenBSD Building on OpenBSD 6.7 amd64. # pkg_add git gmake # git clone https://github.com/mawww/kakoune # cd kakoune # export CXX=clang++ # gmake install Kakoune is available in the 6.7-current port tree as editors/kakoune A binary package is also available for -current snapshot and can be installed with # pkg_add kakoune Running with support for plugins. # pkg_add dash $ export KAKOUNE_POSIX_SHELL=/usr/local/bin/dash $ kak Tip Solus Kakoune is available in the Solus stable repository. It can be installed with eopkg install kakoune Tip Void Kakoune is available in the repositories. It can be installed with xbps-install -S kakoune Tip Term
Read the full README on GitHub

What Hacker News says

75 sources
> I wish every application worth putting a plugin system in it followed this philosophy. Does it open the door for compromising on the core XP whilst expecting everything to be a plugin for example? It's also making the task of testing N^2 complex. Sometimes a well-thought-through plugin system is no plugin system. Kakoune (https://github.com/mawww/kakoune) is a good example of it. I know it's an Emacs celebration party, but that one decision made Kakoune super stable and nice to use. (I'm looking at you NeoVim).
In Emacs Turns 50
Hey, just learned that actually this post surfaced. > ...who does not clearly have the rights This claim is baseless. As I wrote in the piece and on mailing lists - it's not the 1:1 copy & paste. It was modified and it all boils to question how much of the salt makes a soup a salty one. e.g. - if I put 10.000 words into a prompt and got 500 words out of it, is the author LLM, or me? - if I got 50 lines, and modified each single one, is the author LLM, or me? IANAL - especially in US, but I have my share of experience in navigating copyright law (as most software engineers should do IMO), and I'm confident I could prove my case against the court, which I stated clearly (by claiming authorship). If someone is curious, here's when I don't claim authorship: https://github.com/mawww/kakoune/pull/5515
In Honesty gets Emacs patch rejected
Kakoune has been my main editor for the past year (give or take) and uses an array of lines [0]. Ironically, multi-cursor and regex are some of the main features that made it attractive to me. I just tested it out on the 100MB enwik8 file I have laying around and it does slow down significantly (took 4-5 seconds to load in the file and has a 1 second delay on changing a line). But that is not really the type of file you would be opening with your main editor. [0]: https://github.com/mawww/kakoune/blob/2d8c0b8bf0d7d18218d4c9...
In Kilo: A text editor in less than 1000 LOC with syntax highlight and search
Fascinating idea! To summarize for those who know [Kakoune](https://github.com/mawww/kakoune) or [Helix](https://github.com/helix-editor/helix), the idea is that every command has the form ["selection mode" -> "movement" -> "action"](https://ki-editor.github.io/ki-editor/comparisons/modal-edit...) instead of Kakoune's movement->action. So, instead of having separate commands for "next character", "next word", "next structural element", there is one command for "next" (as well as [a few additional motions](https://ki-editor.github.io/ki-editor/normal-mode/core-movem...)). Every command starts with a ["selection mode"](https://ki-editor.github.io/ki-editor/normal-mode/selection-...) like "column", "line", or "structural element". It's hard to know without some practice and experience how much I'd enjoy it, but it is a good idea, and perhaps
Read the rest
it'd be easier for a newcomer to learn than Kakoune/Helix.
In Show HN: Ki Editor – Multicursor syntactical editor
You might like kakoune (https://github.com/mawww/kakoune), which does exactly that: first you select the range (which can even be disjoint, e.g. all words matching a regex), then you operate on it. By default, the selected range is the character under cursor, and multiple cursors work out of the box. It's also generally lean and follows the Unix philosophy, e.g. by using shell script, pipes, and built-in Unix utilities to do complex operations, rather than inventing a new language (vimscript) for it. (Not affiliated with the creator, but kakoune has been my daily driver for years now.)
In I don't need your query language
> Notice that both fzf and fzy ranked source/blender/makesdna/DNA_fileglobal_types.h higher than GNUMakefile. I believe this is because /make and _file in that path are on word boundaries and are ranked higher than UMakefile that is not on a word boundary. The reason for prioritizing word boundaries is so that you can type "sln" to match "SomeLongName". So while you are improving one use case you are probably breaking another one. I'm not sure how VSCode ranks GNUmakefile first, maybe they prioritize exact substring matches. It's still a heuristic that can fail. The ugly part is that it's not part of the "best match" algorithm that finds a global optimum. > It first attempts a match on the filename. If there is no match, it retries on the full candidate string Kakoune does the same, see https://github.com/mawww/kakoune/blob/019fbc5439ad8
Read the rest
84f172c32... > Strict path matching means that the path segments of the query token cannot overlap between path segments in the candidate. nice
In A different approach to fuzzy finding

Showing the 15 most recent of 75 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.