global/neovim: redo keybindings with leader key
This commit is contained in:
parent
d5da333c2f
commit
b1e109a6fe
1 changed files with 52 additions and 9 deletions
|
@ -1,4 +1,20 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
flattenTree = lib.our.flattenTree' (val: val ? action) "";
|
||||||
|
|
||||||
|
mkLeader = { leader, mode }: name: value: {
|
||||||
|
key = leader + name;
|
||||||
|
inherit mode;
|
||||||
|
} // value;
|
||||||
|
|
||||||
|
mkLeaderMap = tree:
|
||||||
|
builtins.concatMap
|
||||||
|
(leader: lib.mapAttrsToList (mkLeader leader) (flattenTree tree))
|
||||||
|
[
|
||||||
|
{ leader = "<leader>"; mode = [ "n" "v" ]; }
|
||||||
|
{ leader = "<M- >"; mode = [ "n" "v" "i" ]; }
|
||||||
|
];
|
||||||
|
in
|
||||||
{
|
{
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -29,24 +45,51 @@
|
||||||
doom-one-nvim
|
doom-one-nvim
|
||||||
];
|
];
|
||||||
|
|
||||||
globals.mapleader = "<space>";
|
globals.mapleader = " ";
|
||||||
|
|
||||||
autoCmd = [
|
autoCmd = [
|
||||||
{ event = [ "TermOpen" ]; command = "setlocal nonumber norelativenumber"; }
|
{ event = [ "TermOpen" ]; command = "setlocal nonumber norelativenumber"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<Space>";
|
||||||
|
action = "<Nop>";
|
||||||
|
mode = [ "n" "v" ];
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
{
|
{
|
||||||
key = "<C-w>n";
|
key = "<C-w>n";
|
||||||
action = "<C-\\><C-n>";
|
action = "<C-\\><C-n>";
|
||||||
mode = "t";
|
mode = "t";
|
||||||
}
|
}
|
||||||
{
|
] ++ mkLeaderMap {
|
||||||
key = "<M-CR>";
|
c = {
|
||||||
action.__raw = "vim.lsp.buf.code_action";
|
a.action.__raw = "vim.lsp.buf.code_action";
|
||||||
mode = [ "n" "i" "v" "s" ];
|
f.action = ":Format<Enter>";
|
||||||
}
|
t = {
|
||||||
];
|
f.action = ":FormatToggle<Enter>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
w = {
|
||||||
|
q.action = ":close<Enter>";
|
||||||
|
v.action = ":vsplit<Enter>";
|
||||||
|
s.action = ":split<Enter>";
|
||||||
|
V.action = ":vsplit ";
|
||||||
|
S.action = ":split ";
|
||||||
|
n.action = ":next<Enter>";
|
||||||
|
p.action = ":previous<Enter>";
|
||||||
|
};
|
||||||
|
f = {
|
||||||
|
s.action = ":w<enter>";
|
||||||
|
};
|
||||||
|
q = {
|
||||||
|
q.action = ":q<Enter>";
|
||||||
|
x.action = ":x<Enter>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
autoclose = {
|
autoclose = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue