{pkgs, ...}: { vim = { extraPlugins = with pkgs.vimPlugins; { harpoon2 = { package = harpoon2; setup = ''require("harpoon"):setup()''; }; oil-nvim = { package = oil-nvim; setup = ''require("oil").setup({})''; }; }; fzf-lua = { enable = true; profile = "telescope"; }; session.nvim-session-manager.enable = true; keymaps = [ # Harpoon {key = "ha"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():add() end''; desc = "Harpoon add";} {key = "hh"; mode = ["n"]; lua = true; action = ''function() local h = require("harpoon") h.ui:toggle_quick_menu(h:list()) end''; desc = "Harpoon menu";} {key = "1"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(1) end''; desc = "Harpoon file 1";} {key = "2"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(2) end''; desc = "Harpoon file 2";} {key = "3"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(3) end''; desc = "Harpoon file 3";} {key = "4"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(4) end''; desc = "Harpoon file 4";} # Oil {key = "-"; mode = ["n"]; lua = true; action = ''function() require("oil").open() end''; desc = "Open parent directory";} {key = "-"; mode = ["n"]; lua = true; action = ''function() require("oil").open_float() end''; desc = "Open parent directory (float)";} # FZF-lua {key = "ff"; mode = ["n"]; action = "FzfLua files"; desc = "Find Files";} {key = "fg"; mode = ["n"]; action = "FzfLua live_grep"; desc = "Live Grep";} {key = "fb"; mode = ["n"]; action = "FzfLua buffers"; desc = "Buffer List";} {key = "fh"; mode = ["n"]; action = "FzfLua help_tags"; desc = "Help Tags";} {key = "fo"; mode = ["n"]; action = "FzfLua oldfiles"; desc = "Recent Files";} {key = "fn"; mode = ["n"]; action = "Noice"; desc = "Notifications";} # Sessions {key = "fp"; mode = ["n"]; action = "SessionManager load_session"; desc = "Session List";} ]; }; }