vim.keymap.set('n', '', function() -- Get the current file's directory (handles unsaved files too) local cwd = vim.fn.expand '%:p:h' if cwd == '' then cwd = vim.fn.getcwd() -- fallback to current working dir end -- Open a horizontal split and terminal vim.cmd 'split' vim.cmd 'terminal' vim.cmd 'startinsert' -- Safely cd into the folder, even if it has spaces vim.fn.chansend(vim.b.terminal_job_id, 'cd "' .. cwd .. '"\n') end, { desc = "Open terminal in current file's directory" }) local harpoon = require 'harpoon' vim.keymap.set('n', 'a', function() harpoon:list():add() end, { desc = 'Add file to Harpoon' }) vim.keymap.set('n', 'h', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { desc = 'Toggle Harpoon menu' }) vim.keymap.set('n', '1', function() harpoon:list():select(1) end) vim.keymap.set('n', '2', function() harpoon:list():select(2) end) vim.keymap.set('n', '3', function() harpoon:list():select(3) end) vim.keymap.set('n', '4', function() harpoon:list():select(4) end) -- In your keybindings configuration (e.g., lua/config/keymaps.lua or init.lua) vim.keymap.set('n', 'w', 'NvimTreeToggle', { desc = 'Toggle NvimTree' }) -- Insert Kubernetes Deployment template below the cursor vim.keymap.set('n', 'kd', function() vim.cmd 'read ~/.config/nvim/lua/custom/templates/k8s-deployment.yaml' end, { desc = 'Insert K8s Deployment template' })