{ programs.nvf.settings.vim = { utility = { oil-nvim.enable = true; snacks-nvim = { setupOpts = { picker.enabled = true; explorer.enabled = true; }; }; }; keymaps = [ # Top Pickers & Explorer { key = " "; mode = "n"; silent = true; action = "lua Snacks.picker.smart()"; desc = "Smart Find Files"; } { key = ","; mode = "n"; silent = true; action = "lua Snacks.picker.buffers()"; desc = "Buffers"; } { key = "/"; mode = "n"; silent = true; action = "lua Snacks.picker.grep()"; desc = "Grep"; } { key = ":"; mode = "n"; silent = true; action = "lua Snacks.picker.command_history()"; desc = "Command History"; } { key = "e"; mode = "n"; silent = true; action = "lua Snacks.explorer()"; desc = "File Explorer"; } { key = "-"; mode = "n"; silent = true; action = "Oil"; desc = "Oil"; } # Find { key = "fb"; mode = "n"; silent = true; action = "lua Snacks.picker.buffers()"; desc = "Buffers"; } { key = "fc"; mode = "n"; silent = true; action = '' lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })''; desc = "Find Config File"; } { key = "ff"; mode = "n"; silent = true; action = "lua Snacks.picker.files()"; desc = "Find Files"; } { key = "fg"; mode = "n"; silent = true; action = "lua Snacks.picker.git_files()"; desc = "Find Git Files"; } { key = "fp"; mode = "n"; silent = true; action = "lua Snacks.picker.projects()"; desc = "Projects"; } { key = "fr"; mode = "n"; silent = true; action = "lua Snacks.picker.recent()"; desc = "Recent"; } { key = "fn"; mode = "n"; silent = true; action = "lua Snacks.picker.notifications()"; desc = "Notification History"; } { key = "fe"; mode = "n"; silent = true; action = "lua Snacks.picker.icons()"; desc = "Emoji"; } # Git { key = "gb"; mode = "n"; silent = true; action = "lua Snacks.picker.git_branches()"; desc = "Git Branches"; } { key = "gL"; mode = "n"; silent = true; action = "lua Snacks.picker.git_log()"; desc = "Git Log Line"; } { key = "gs"; mode = "n"; silent = true; action = "lua Snacks.picker.git_status()"; desc = "Git Status"; } { key = "gS"; mode = "n"; silent = true; action = "lua Snacks.picker.git_stash()"; desc = "Git Stash"; } { key = "gd"; mode = "n"; silent = true; action = "lua Snacks.picker.git_diff()"; desc = "Git Diff (Hunks)"; } { key = "gf"; mode = "n"; silent = true; action = "lua Snacks.picker.git_log_file()"; desc = "Git Log File"; } # Grep { key = "sb"; mode = "n"; silent = true; action = "lua Snacks.picker.lines()"; desc = "Buffer Lines"; } { key = "st"; mode = "n"; silent = true; action = "lua Snacks.picker.todo_comments()"; desc = "Todos"; } { key = "sB"; mode = "n"; silent = true; action = "lua Snacks.picker.grep_buffers()"; desc = "Grep Open Buffers"; } { key = "sg"; mode = "n"; silent = true; action = "lua Snacks.picker.grep()"; desc = "Grep"; } { key = "sw"; mode = "n"; silent = true; action = "lua Snacks.picker.grep_word()"; desc = "Visual selection or word"; } { key = "sr"; mode = "n"; silent = true; action = "nohlsearch"; desc = "Reset search"; } # LSP { key = "gd"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_definitions()"; desc = "Goto Definition"; } { key = "gD"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_declarations()"; desc = "Goto Declaration"; } { key = "gr"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_references()"; desc = "References"; nowait = true; } { key = "gI"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_implementations()"; desc = "Goto Implementation"; } { key = "gy"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_type_definitions()"; desc = "Goto Type Definition"; } { key = "ss"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_symbols()"; desc = "LSP Symbols"; } { key = "sS"; mode = "n"; silent = true; action = "lua Snacks.picker.lsp_workspace_symbols()"; desc = "LSP Workspace Symbols"; } ]; }; }