2011-11-04 13:09:27 +04:00
|
|
|
Kakoune
|
|
|
|
=======
|
|
|
|
|
|
|
|
Introduction:
|
|
|
|
-------------
|
|
|
|
|
2011-11-04 18:05:05 +04:00
|
|
|
Kakoune is a code editor heavily inspired by vim, as such most of it's
|
2011-11-04 13:09:27 +04:00
|
|
|
commands are similar to vi's ones.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
There is no concept of cursor in kakoune, only selections, a single character
|
|
|
|
selection can be seen as a cursor but there is no difference internally.
|
|
|
|
|
2011-11-04 18:05:05 +04:00
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
|
|
|
Kakoune dependencies are:
|
2011-11-04 18:28:29 +04:00
|
|
|
|
2011-11-04 18:05:05 +04:00
|
|
|
* GCC >= 4.6
|
|
|
|
* boost
|
|
|
|
* ncurses
|
|
|
|
|
|
|
|
To build, just type *make* in the src directory
|
2011-11-04 13:09:27 +04:00
|
|
|
|
|
|
|
Basic Movement
|
|
|
|
--------------
|
|
|
|
|
|
|
|
* _space_: select the character under selection end
|
|
|
|
|
|
|
|
* _h_: select the character on the right of selection end
|
|
|
|
* _j_: select the character below the selection end
|
|
|
|
* _k_: select the character above the selection end
|
|
|
|
* _l_: select the character on the left of selection end
|
|
|
|
|
|
|
|
* _w_: select the word and following whitespaces on the right of selection end
|
|
|
|
* _b_: select preceding whitespaces and the word on the left of selection end
|
|
|
|
* _e_: select preceding whitespaces and the word on the right of selection end
|
|
|
|
|
|
|
|
* _x_: select line on which selection end lies
|
|
|
|
* _%_: select whole buffer
|
|
|
|
|
|
|
|
* _alt-H_: select to line begin
|
|
|
|
* _alt-L_: select to line end
|
|
|
|
|
|
|
|
Appending
|
|
|
|
---------
|
|
|
|
|
|
|
|
for most selection commands, using shift permits to add to current selection
|
|
|
|
instead of replacing it. for example, _wWW_ selects 3 consecutive words
|
|
|
|
|
|
|
|
Using Counts
|
|
|
|
------------
|
|
|
|
|
|
|
|
Most selection commands also support counts, which are entered before the
|
|
|
|
command itself.
|
|
|
|
|
|
|
|
for example, _3W_ selects 3 consecutive words and _3w_ select the third word on
|
|
|
|
the right of selection end.
|
|
|
|
|
|
|
|
Changes
|
|
|
|
-------
|
|
|
|
|
|
|
|
* _i_: insert before current selection
|
|
|
|
* _a_: insert after current selection
|
|
|
|
* _d_: yank and delete current selection
|
|
|
|
* _c_: yank and delete current selection and insert
|
|
|
|
|
|
|
|
* _I_: insert at current selection begin line start
|
|
|
|
* _A_: insert at current selection end line end
|
|
|
|
* _o_: insert in a new line below current selection end
|
|
|
|
* _O_: insert in a new line above current selection begin
|
|
|
|
|
|
|
|
* _p_: paste after current selection end
|
|
|
|
* _P_: paste before current selection begin
|
|
|
|
|
2011-11-16 18:15:40 +04:00
|
|
|
Multi Selection
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Kak was designed from the start to handle multiple selections.
|
|
|
|
On way to get a multiselection is via the _s_ key.
|
|
|
|
|
|
|
|
For example, to change all occurences of word 'roger' to word 'marcel'
|
|
|
|
in a paragraph, here is what can be done:
|
|
|
|
|
|
|
|
select the paragraph with enough _x_. press _s_ and enter roger then enter.
|
|
|
|
now paragraph selection was replaced with multiselection of each roger in
|
|
|
|
the paragraph. press _c_ and marcel<esc> to replace rogers with marcels.
|
|
|
|
|
2011-11-17 00:05:51 +04:00
|
|
|
Captures
|
|
|
|
--------
|
|
|
|
|
|
|
|
Selections can have associated captures. When selections were made from a
|
|
|
|
regex search (like _/_ key of _s_ key), the regex capture groups are available
|
|
|
|
from the selection.
|
|
|
|
|
|
|
|
While inserting, _^B_ key followed by a digit inserts the designated capture.
|
|
|
|
|
2011-11-08 18:30:10 +04:00
|
|
|
Filters
|
|
|
|
-------
|
|
|
|
|
2011-11-10 18:30:10 +04:00
|
|
|
Manipulation of the displayed text is done through filters, which can be added
|
|
|
|
or removed with the command :addfilter <filter_name> <filter_parameters...>
|
2011-11-08 18:30:10 +04:00
|
|
|
|
|
|
|
existing filters are:
|
|
|
|
|
2011-11-10 18:30:10 +04:00
|
|
|
* *highlight_selections*: used to make current selection visible
|
|
|
|
* *expand_tabs*: expand tabs to next 8 multiple column (to make configurable)
|
|
|
|
* *hlcpp*: quick'n'dirty c++ code highlighter
|
|
|
|
* *number_lines*: show line numbers
|
|
|
|
* *regex*: highlight a regex, takes 3 parameters <regex> <fg_color> <bg_color>
|