# Compilation Mode Emacs-Like (most full featured)

**URL:** <https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925>\
**Category:** Plugins\
**Tags:** command, plugins\
**Created:** [June 25, 2026, 9:20am UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925 "2026-06-25T09:20:06Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mandigaklu](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/mandigaklu/32/1653_2.png) [@mandigaklu](https://discuss.kakoune.com/u/mandigaklu)\
**Post date:** [June 25, 2026, 9:20am UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/1 "2026-06-25T09:20:07Z")

</div>

![demo](https://discuss.kakoune.com/uploads/default/original/2X/d/d69220a8680995e6db03050d1babf87e7f57de8a.gif)  
This plugin heavely inspired by Emacs’s Compiler Mode. If you know the Rusian Twitch streamer / Youtube, he use that in every single his Programming Session.

**Instalation**

Just copy compiler-mode.kak to your autoload directory and paste this command to your kakrc file:

`require-module compilation`

[https://github.com/mardhiluthfilhadi/Kak-Compiler-Mode/](https://github.com/mardhiluthfilhadi/Kak-Compiler-Mode/)

---

<div class="post-metadata">

**Author:** ![strlen](https://discuss.kakoune.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@strlen](https://discuss.kakoune.com/u/strlen)\
**Post date:** [June 25, 2026, 7:57pm UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/2 "2026-06-25T19:57:00Z")

</div>

nice.

tip: your command could(?) be rewritten using `require-module grep` and `set local grepcmd`

---

<div class="post-metadata">

**Author:** ![kall29243748298](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/kall29243748298/32/1521_2.png) [@kall29243748298](https://discuss.kakoune.com/u/kall29243748298)\
**Post date:** [June 25, 2026, 8:59pm UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/3 "2026-06-25T20:59:35Z")

</div>

Supeer cool, I remember found your repository some time ago when I was looking for something like that. I end it using kakoune-repl-buffer with some hacks. Nice to see it:D

---

<div class="post-metadata">

**Author:** ![mandigaklu](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/mandigaklu/32/1653_2.png) [@mandigaklu](https://discuss.kakoune.com/u/mandigaklu)\
**Post date:** [June 26, 2026, 6:03am UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/4 "2026-06-26T06:03:25Z")

</div>

But the pattern for “jump-to-error” is limited to grep pattern. I wrote this for alot compiler error pattern included. ODIN, lua, js, python, and etc.

---

<div class="post-metadata">

**Author:** ![mandigaklu](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/mandigaklu/32/1653_2.png) [@mandigaklu](https://discuss.kakoune.com/u/mandigaklu)\
**Post date:** [June 26, 2026, 6:04am UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/5 "2026-06-26T06:04:55Z")

</div>

This is an updated feature, now you can kill the running program, more pattern for error/warning compiler output

---

<div class="post-metadata">

**Author:** ![strlen](https://discuss.kakoune.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@strlen](https://discuss.kakoune.com/u/strlen)\
**Post date:** [June 27, 2026, 10:11pm UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/6 "2026-06-27T22:11:37Z")

</div>

Take a look at tools/make.kak

---

<div class="post-metadata">

**Author:** ![mandigaklu](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/mandigaklu/32/1653_2.png) [@mandigaklu](https://discuss.kakoune.com/u/mandigaklu)\
**Post date:** [June 29, 2026, 1:09am UTC](https://discuss.kakoune.com/t/compilation-mode-emacs-like-most-full-featured/2925/7 "2026-06-29T01:09:42Z")

</div>

kinda similar (this plugin is inspired by it, actually), but doesn’t it nice when you can type arbitrary shell command run it or kill it when you like, without committing to any build dependency? How about, “I wanna run this lua script and check if there is no error…” I can just do `lua main.lua` and quickly jump-to-error when there is, and you know the gist…
