-- Mirrors common Zed bindings for muscle-memory continuity. -- Source from init.lua: require('custom.zed-keymaps'). -- Move lines (Zed: alt-j / alt-k). vim.keymap.set('n', '', ':m .+1==', { desc = 'Move line down', silent = true }) vim.keymap.set('n', '', ':m .-2==', { desc = 'Move line up', silent = true }) vim.keymap.set('v', '', ":m '>+1gv=gv", { desc = 'Move selection down', silent = true }) vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selection up', silent = true }) -- Lowercase gi for implementation (Zed: g i; existing gI still works). vim.keymap.set('n', 'gi', function() require('telescope.builtin').lsp_implementations() end, { desc = '[G]oto [I]mplementation' }) -- Zed-parity: F2 to rename, . for code action (mirrors cmd-.), -- fc for command palette. vim.keymap.set('n', '', vim.lsp.buf.rename, { desc = 'LSP rename' }) vim.keymap.set('n', '.', vim.lsp.buf.code_action, { desc = 'Code action' }) vim.keymap.set('n', 'fc', function() require('telescope.builtin').commands() end, { desc = '[F]ind [C]ommand' }) -- Full-buffer git blame (Zed: g b). vim.keymap.set('n', 'gb', function() require('gitsigns').blame() end, { desc = '[G]it [B]lame buffer' }) -- Close current buffer (Zed: space x). vim.keymap.set('n', 'x', 'bd', { desc = 'Close buffer' }) -- Workspace symbols (Zed: space f e). vim.keymap.set('n', 'fe', function() require('telescope.builtin').lsp_dynamic_workspace_symbols() end, { desc = '[F]ind workspace symbols' }) -- Task spawner: floating zellij pane when in zellij, fallback to nvim split term. local function task(cmd) return function() if vim.env.ZELLIJ ~= nil and vim.env.ZELLIJ ~= '' then vim.fn.jobstart({ 'zellij', 'action', 'new-pane', '--floating', '--close-on-exit', '--', '/bin/zsh', '-lc', cmd, }, { detach = true }) else vim.cmd('botright 15split | terminal ' .. cmd) vim.cmd('startinsert') end end end -- Task bindings (mirror Zed's tasks.json). vim.keymap.set('n', 'gh', task('gh dash'), { desc = '[G]itHub das[H]board' }) vim.keymap.set('n', 'kk', task('k9s'), { desc = '[K]9s' }) vim.keymap.set('n', 'bb', task('cd bruno && bru run --env Local --insecure --tests-only'), { desc = '[B]runo tests' }) vim.keymap.set('n', 'uu', task('cd restopay && make up'), { desc = 'Make [U]p' }) vim.keymap.set('n', 'dd', task('cd restopay && make down'), { desc = 'Make Do[w]n' }) vim.keymap.set('n', 'aa', task( 'hv athenz user-cert --system=public && awscreds -d vespa.external.factory -r admin -p external-factory -z public' ), { desc = 'Update certs for External-Factory' })