Kakoune: Difference between revisions

From NixOS Wiki
imported>Nhey
No edit summary
imported>Nhey
No edit summary
Line 2: Line 2:


== Configuration ==
== Configuration ==
Kakoune may be configured without use of the nix build system (see [https://github.com/mawww/kakoune#running]), by simply adding
Kakoune may be configured without use of the nix build system (simply add it to your system environment and see [https://github.com/mawww/kakoune#running]), or it may be configured using the <code>wrapKakoune</code> function defined in Nixpkgs[https://github.com/NixOS/nixpkgs/blob/c4f97342ba8ac84def72328616dd05d005bb4715/pkgs/top-level/all-packages.nix#L4514]:
<syntaxhighlight lang="nix>
environment.systemPackages = with pkgs; [ kakoune ];
</syntaxhighlight>
 
or it may be configured using the <code>wrapKakoune</code> function defined in Nixpkgs[https://github.com/NixOS/nixpkgs/blob/c4f97342ba8ac84def72328616dd05d005bb4715/pkgs/top-level/all-packages.nix#L4514]:
<syntaxhighlight lang="nix>
<syntaxhighlight lang="nix>
let
let
Line 26: Line 21:
   };
   };
in
in
environment.systemPackages = [ myKakoune ];
{
  environment.systemPackages = [ myKakoune ];
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 19:49, 27 March 2020

Kakoune[1] is a modal text editor that operates on selections. Unlike Vim's command-motion paradigme, text is first selected, then operated upon (a motion-command paradigme, if you will). This allows Kakoune to provide strong visual feedback and incremental results while requiring keystroke counts similar to that of Vim. More on the design of Kakoune can be found here [2] and on https://kakoune.org.

Configuration

Kakoune may be configured without use of the nix build system (simply add it to your system environment and see [3]), or it may be configured using the wrapKakoune function defined in Nixpkgs[4]:

let
  myKakoune =
  let
    config = pkgs.writeTextFile (rec {
      name = "kakrc.kak";
      destination = "/share/kak/autoload/${name}";
      text = ''
        set global ui_options ncurses_assistant=cat
      '';
    });
  in
  wrapKakoune kakoune-unwrapped {
    configure = {
      plugins = [ config ];
    };
  };
in
{
  environment.systemPackages = [ myKakoune ];
}