Kakoune: Difference between revisions

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


== Configuration ==
== Configuration ==
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]:
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 <code>kakoune.override</code> and <code>pkgs.kakounePlugins</code>:
<syntaxhighlight lang="nix>
<syntaxhighlight lang="nix>
let
let
Line 15: Line 15:
     });
     });
   in
   in
   wrapKakoune kakoune-unwrapped {
   kakoune.override {
     configure = {
     plugins = with kakounePlugins; [ config parinfer-rust ];
      plugins = [ config ];
    };
   };
   };
in
in
Line 25: Line 23:
}
}
</syntaxhighlight>
</syntaxhighlight>
User configuration can simply be added as a plugin as above.

Revision as of 01:30, 4 January 2021

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 kakoune.override and pkgs.kakounePlugins:

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

User configuration can simply be added as a plugin as above.