diff --git a/init.lua b/init.lua index bf6d96b2..0cac4faa 100644 --- a/init.lua +++ b/init.lua @@ -321,6 +321,7 @@ require('lazy').setup({ { 'w', group = '[W]orkspace' }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, + { 'm', group = '[M]arks' }, }, }, }, @@ -434,6 +435,9 @@ require('lazy').setup({ vim.keymap.set('n', 'sn', function() builtin.find_files { cwd = vim.fn.stdpath 'config' } end, { desc = '[S]earch [N]eovim files' }) + + -- Custom picker for Harpoon marks + vim.keymap.set('n', 'sm', require('harpoon.ui').toggle_quick_menu, { desc = '[S]earch [M]arks' }) end, }, @@ -1008,5 +1012,12 @@ require('lazy').setup({ }, }) +-- Harpoon keybindings +vim.keymap.set('n', 'ma', require('harpoon.mark').add_file, { desc = '[M]ark [A]dd file' }) +vim.keymap.set('n', 'mm', require('harpoon.ui').toggle_quick_menu, { desc = '[M]ark [M]enu' }) +vim.keymap.set('n', 'mn', require('harpoon.ui').nav_next, { desc = '[M]ark [N]ext' }) +vim.keymap.set('n', 'mp', require('harpoon.ui').nav_prev, { desc = '[M]ark [P]revious' }) +vim.keymap.set('n', 'md', require('harpoon.mark').rm_file, { desc = '[M]ark [D]elete file' }) + -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index dca05b2a..1663ed0a 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -15,4 +15,15 @@ return { opts = {}, dependencies = { 'nvim-tree/nvim-web-devicons' }, -- use if prefer nvim-web-devicons }, + { + 'ThePrimeagen/harpoon', + branch = 'harpoon2', + config = function() + require('harpoon').setup({ + menu = { + width = vim.api.nvim_win_get_width(0) - 4, + } + }) + end, + }, }