mirror of
https://github.com/mawww/kakoune.git
synced 2024-07-07 09:16:26 +03:00
Page:
Home
Pages
Ambiguous Keys
Annotated examples of "Kakoune script"
Avoid the escape key
Bar
Bc
Building
Clang
Community
Ctags
Distinguish between focused and unfocused clients in Tmux
Documenting Plugins
EditorConfig
Eval Exec
Fuzzy finder
Git integration via Tig
Grep
HTML editing
Hacking
Header files
Highlighters
Home
IDE
Implementing user mode
Increment and Decrement
Indentation and Tabulation
Info boxes
Installing Plugins
Integrating Other CLI apps
JSON RPC
Jumplist
Kak daemon helper : 1 session per project
Languages
Line flags
Manipulating dates with Chronic
Migrating from Vim popular plugins
Migrating from Vim
Normal mode commands
OpenBSD
Plugin Managers
Qalculate
Ranger
Readline
Regex
Registers & Clipboard
Registers Clipboard
Reverse search
Running commands at startup
Rust
Selections combinations
Selections
Setting Plugin Options
Shell scripting
Status line
String syntax
TUI
The window scope
Tips for building from source
Undo tree
Wc
Windows tips
Wrapping
Writing Plugins
kak ‐p
macOS tips
zsh zle
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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:
Onboarding
- Why Kakoune?
- Walkthrough / tutorial
- Migrating from Vim
- Migrating from Vim popular plugins
- Migrating from Vis
Keys
- 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
Editing
- 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-/>
Configuring
- 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
Emulation in other Editors
- Emacs - kakoune.el
- VS Code:
- Dance: Kakoune emulation in native operations
- kakoune-mode: Kakoune process used as editing driver
User Interface
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
Integration with OS and other tools
- 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)
Plugins
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.
Supported tools in rc
dir
For the meaning the content of the Clients column below, see use kakoune as an IDE
Name | Commands | Clients | Site | More info… | |
---|---|---|---|---|---|
rc/detection | |||||
editorconfig | editorconfig-load | http://editorconfig.org | editorconfig… | ||
modeline | modeline-parse | :h modeline | |||
rc/tools | |||||
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 | ||||
rc/tools/go | |||||
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 | ||
rc/tools/python | |||||
jedi | jedi-complete, jedi-enable-autocomplete, jedi-disable-autocomplete | https://github.com/davidhalter/jedi | |||
rc/tools/rust | |||||
racer | racer-complete, racer-enable-autocomplete, racer-disable-autocomplete | https://github.com/racer-rust/racer | |||
rc/windowing | |||||
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 | ||||
rc/filetype | |||||
rust | rust... |
Wiki Home Page
Onboarding
Keys
- Normal mode commands
- Avoid the escape key
- Implementing user mode (Leader key)
- Kakoune explain
- Kakoune TV
Editing
User Interface
Integration with OS and other tools
- Languages
- IDE
- Bar
- Kak daemon helper : 1 session per project
- Registers & Clipboard
- macOS tips
- Windows tips
- Fuzzy finders
- JSON-RPC UI
- bc
- Qalculate!
- wc
- Shell Scripting
- Manipulating dates with Chronic
- Integrating Other CLI apps