return { 'ThePrimeagen/harpoon', branch = 'harpoon2', requires = { { 'nvim-lua/plenary.nvim' } }, config = function() local harpoon = require 'harpoon' harpoon:setup() -- Harpoon remaps vim.keymap.set('n', 'hm', function() harpoon:list():append() end, { desc = 'Add buffer to Harpoon list' }) vim.keymap.set('n', '', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) vim.keymap.set('n', '', function() harpoon:list():select(1) end) vim.keymap.set('n', '', function() harpoon:list():select(2) end) vim.keymap.set('n', '', function() harpoon:list():select(3) end) -- Toggle previous & next buffers stored within Harpoon list vim.keymap.set('n', '', function() harpoon:list():prev() end) vim.keymap.set('n', '', function() harpoon:list():next() end) harpoon:extend { UI_CREATE = function(cx) vim.keymap.set('n', '', function() harpoon.ui:select_menu_item { vsplit = true } end, { buffer = cx.bufnr }) vim.keymap.set('n', '', function() harpoon.ui:select_menu_item { split = true } end, { buffer = cx.bufnr }) vim.keymap.set('n', '', function() harpoon.ui:select_menu_item { tabedit = true } end, { buffer = cx.bufnr }) end, } end, }