-
Notifications
You must be signed in to change notification settings - Fork 715
Home
Coleman McFarland edited this page Sep 30, 2022
·
91 revisions
Welcome to the kakoune wiki!
The wiki is world writable, so do not hesitate to add information you found useful in it. (See revisions history)
It offers extra knowledge complementing common topics covered in the README and in the official kakoune doc. So be sure to read those documents beforehand.
If you need more help, don't hesitate to ask on:
- Why Kakoune?
- Walkthrough / tutorial
- Migrating from Vim
- Migrating from Vim popular plugins
- Migrating from Vis
-
Normal mode commands — cheat sheet of all keys used in normal mode (also with
alt
,ctrl
) - Avoid the escape key — leave insert mode quickly
-
Ambiguous Keys - how to deal with
<c-i>
versus<tab>
in the terminal - Implementing user mode (Leader key) — organize personal mappings
- Kakoune explain — translate kakoune keys sequence to plain english
- Kakoune TV — screencasts with keys explanations
- Indentation & Tabulation — tabs vs spaces
- Wrapping — stop at 80chars
- Selections — derived text manipulation primitives
-
Selections Combinations — discover
<a-z>
and<a-Z>
- Regex — expressions used in prompt, for searching, splitting, filtering…
- Undo tree — navigate through history
- Increment and Decrement
-
Reverse search -
<a-/>
-
Running commands at startup - How to use the
kakrc
file andautoload
directory -
Setting Plugin Options - Some plugins' options can't just be set directly in
kakrc
- Emacs - kakoune.el
- VS Code:
- Dance: Kakoune emulation in native operations
- kakoune-mode: Kakoune process used as editing driver
Tips to customize the way kakoune looks in the terminal
- Highlighters — enhance buffer content, with syntax color
- Line flags — line numbers, gutter signs
- Status line — modeline
- Info boxes — interactive help
- Kakoune Ink — online editor to build colorschemes
- Highlight status line - distinguish between focused and unfocused clients in tmux
-
Languages — support for
C
,C++
,Java
,Python
… - IDE — organize multiple windows
- Bar – use lemonbar / polybar to display extra info like the buffer list
- Kak daemon helper : 1 session per project
- Registers & Clipboard — cut, copy, paste with system
- macOS tips — specific to the Apple OS
- Windows tips — specific to the Microsoft OS
- Fuzzy finders — FZF, FASD…
- JSON-RPC UI — build custom UI
- bc — increment numbers, simple math…
- Qalculate! — advanced math…
- wc — count chars, words, lines
- Shell Scripting
- Manipulating dates with Chronic — Changing time format, Incrementing / Decrementing dates
-
Readline - Making
bash
and other apps that use Readline feel more Kakoune-y - zsh zle - make zsh line editor Kakoune Style (like Readline for zsh)
Find Plugins: https://kakoune.org/plugins.html
- Writing Plugins — Tips, tricks and conventions
- Documenting Plugins — What to write and where
- Installing Plugins — How to add somebody else's plugin to your configuration
- Plugin Managers — tools that are aimed to simplify maintenance of installed plugins.
For the meaning the content of the Clients column below, see use kakoune as an IDE
Name | Commands | Clients | Site | More info… | |
---|---|---|---|---|---|
editorconfig | editorconfig-load | http://editorconfig.org | editorconfig… | ||
modeline | modeline-parse | :h modeline | |||
clang | clang-parse, clang-complete, clang-enable-autocomplete, clang-enable-diagnostics, clang-diagnostics-next | https://clang.llvm.org | clang… | ||
comment | comment-block, comment-line, align-selections-left | ||||
ctags | tag, tag-complete, ctags-funcinfo, ctags-enable-autoinfo, ctags-generate, update-tags | https://ctags.io | ctags… | ||
doc | doc | docsclient | |||
format | format, format-buffer, format-selections | format… | |||
git | git | docsclient | https://git-scm.com | Integrating Tig | |
grep | grep, grep-previous-match, grep-next-match | jumpclient, toolsclient | grep… | ||
iterm | iterm-new-vertical, iterm-new-horizontal, iterm-new-tab, iterm-new-window, iterm-focus | https://www.iterm2.com | |||
lint | lint, lint-enable, lint-disable, lint-prev, lint-next | lint… | |||
make | make, make-prev, make-next | jumpclient, toolsclient | |||
man | man | docsclient | |||
spell | spell, spell-next, spell-replace | ||||
go | go-complete, go-enable-autocomplete, go-disable-autocomplete, go-doc-info, go-print-signature, go-jump, go-share-selection | jumpclient | https://github.com/nsf/gocode | ||
jedi | jedi-complete, jedi-enable-autocomplete, jedi-disable-autocomplete | https://github.com/davidhalter/jedi | |||
racer | racer-complete, racer-enable-autocomplete, racer-disable-autocomplete | https://github.com/racer-rust/racer | |||
kitty | kitty-terminal, kitty-terminal-tab, kitty-focus, kitty-repl | https://github.com/kovidgoyal/kitty | |||
screen | screen-terminal-vertical, screen-terminal-horizontal, screen-terminal-window, screen-focus | https://www.gnu.org/software/screen/ | |||
tmux | tmux-terminal-vertical, tmux-terminal-horizontal, tmux-terminal-window, tmux-focus | https://github.com/tmux/tmux | |||
tmux-repl | tmux-repl-vertical, tmux-repl-horizontal, tmux-repl-window | ||||
x11 | x11-terminal, x11-focus | ||||
x11-repl | x11-repl, x11-send-text | ||||
rust | rust... |
- Normal mode commands
- Avoid the escape key
- Implementing user mode (Leader key)
- Kakoune explain
- Kakoune TV