local term = require('term') local keymaps = { -- Normal mode mappings { 'n', 'gd', vim.lsp.buf.hover, { noremap = true } }, { 'n', 'tw', function() MiniTrailspace.trim() end, { noremap = true } }, -- Terminal and buffer mappings { 'n', 'tt', term.toggle_popup_terminal, { noremap = true } }, { 'n', 'th', term.toggle_popup_terminal, { noremap = true } }, { 't', '', '', { noremap = true } }, { 'n', '', 'bprev', { noremap = true } }, -- Move selected text up/down in visual mode { 'v', 'J', "m '>+1gv=gv", { noremap = true } }, { 'v', 'K', "m '<-2gv=gv", { noremap = true } }, -- Keep cursor in the middle when jumping or joining lines { 'n', 'J', 'mzJ`z', { noremap = true } }, { 'n', '', 'zz', { noremap = true } }, { 'n', '', 'zz', { noremap = true } }, { 'n', 'n', 'nzzzv', { noremap = true } }, { 'n', 'N', 'Nzzzv', { noremap = true } }, -- Telescope mappings { 'n', 'ff', 'Telescope find_files' }, { 'n', 'fb', 'Telescope buffers' }, { 'n', 'fh', 'Telescope help_tags' }, { 'n', 'fg', 'Telescope live_grep' }, { 'n', 'fs', 'Telescope git_status' }, { 'n', 'ft', 'Telescope' }, -- Telekasten mappings { 'n', 'tk', 'Telekasten' }, { 'n', 'tf', 'Telekasten find_notes' }, { 'n', 'ts', 'Telekasten search_notes' }, { 'n', 'tn', 'Telekasten new_note' }, { 'n', 'tlf', 'Telekasten follow_link' }, { 'n', 'tli', 'Telekasten insert_link' }, -- File operations { 'n', 'e', 'Oil' }, { 'n', 'lf', vim.lsp.buf.format }, -- Basic operations { 'n', 'o', 'update source' }, { 'n', 'w', 'write' }, { 'n', 'q', 'quit' }, -- Copy/delete to system clipboard { { 'n', 'v', 'x' }, 'y', "'+y" }, { { 'n', 'v', 'x' }, 'd', "'+d" }, -- Claude Code { 'n', 'cc', 'ClaudeCode', { desc = 'Toggle Claude Code' } }, } for _, keymap in ipairs(keymaps) do vim.keymap.set(keymap[1], keymap[2], keymap[3], keymap[4]) end