nvim/plugins/navigation.nix
2026-04-18 10:58:25 +02:00

41 lines
2.3 KiB
Nix

{pkgs, ...}: {
vim = {
extraPlugins = with pkgs.vimPlugins; {
harpoon2 = {
package = harpoon2;
setup = ''require("harpoon"):setup()'';
};
};
session.nvim-session-manager = {
enable = true;
setupOpts.autoload_mode = "Disabled";
};
keymaps = [
# Harpoon
{key = "<leader>ha"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():add() end''; desc = "Harpoon add";}
{key = "<leader>hh"; mode = ["n"]; lua = true; action = ''function() local h = require("harpoon") h.ui:toggle_quick_menu(h:list()) end''; desc = "Harpoon menu";}
{key = "<leader>1"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(1) end''; desc = "Harpoon file 1";}
{key = "<leader>2"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(2) end''; desc = "Harpoon file 2";}
{key = "<leader>3"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(3) end''; desc = "Harpoon file 3";}
{key = "<leader>4"; mode = ["n"]; lua = true; action = ''function() require("harpoon"):list():select(4) end''; desc = "Harpoon file 4";}
# Mini.files
{key = "-"; mode = ["n"]; lua = true; action = ''function() MiniFiles.open() end''; desc = "Open file explorer";}
{key = "<leader>-"; mode = ["n"]; lua = true; action = ''function() MiniFiles.open(vim.api.nvim_buf_get_name(0)) end''; desc = "Open file explorer (current file)";}
# Snacks picker
{key = "<leader>ff"; mode = ["n"]; lua = true; action = "function() Snacks.picker.files() end"; desc = "Find Files";}
{key = "<leader>fg"; mode = ["n"]; lua = true; action = "function() Snacks.picker.grep() end"; desc = "Live Grep";}
{key = "<leader>fb"; mode = ["n"]; lua = true; action = "function() Snacks.picker.buffers() end"; desc = "Buffer List";}
{key = "<leader>fh"; mode = ["n"]; lua = true; action = "function() Snacks.picker.help() end"; desc = "Help Tags";}
{key = "<leader>fo"; mode = ["n"]; lua = true; action = "function() Snacks.picker.recent() end"; desc = "Recent Files";}
{key = "<leader>fn"; mode = ["n"]; action = "<cmd>Noice<cr>"; desc = "Notifications";}
# Sessions
{key = "<leader>fp"; mode = ["n"]; action = "<cmd>SessionManager load_session<CR>"; desc = "Session List";}
];
};
}