IDE - mawww/kakoune GitHub Wiki

Use kakoune as an IDE

As a convention, many commands respect the toolsclient, docsclient and jumpclient options. These string options store the name of the client to use. toolsclient will be used for :make and :grep commands, when an entry is selected in them, they will try to open the file in the jumpclient client. The :man and :doc commands will display their content in the docsclient.

If neither of those options are defined, it will fallback on the current client.

Here's a small snippet you can trigger to launch multiple clients and bind them to the right options:

def ide %{
    rename-client main
    set global jumpclient main

    new rename-client tools
    set global toolsclient tools

    new rename-client docs
    set global docsclient docs
}

Then it's up to tmux or your window manager (dwm, i3, xmonad…) to fit them correctly on your monitor.

Read local kakrc file

At times, it can be useful to override/extend your configuration based on the local directory. For example, you may want to set options only for certain projects, etc. For this, you can implement a simple .kakrc file to be run automatically when you open Kakoune inside that project.

[!WARNING] Automatically running commands from a project can be a security risk. Please consider manually running source .kakrc instead. For an implementation that only loads .kakrc files in trusted directories, see the secure-local-kakrc plugin.

To implement naive autoloading, you may add the following snippet to your kakrc:

# Source a local project kak config if it exists
# Make sure it is set as a kak filetype
hook global BufCreate (.*/)?(\.kakrc) %{
    set-option buffer filetype kak
}
try %{ source .kakrc }

Buffer list

The Bar page explains how to add extra status bars.