local map = vim.keymap.set -- The good 'ol keybinds map('n', '', 'w', { noremap = true, silent = true, desc = 'File save' }) map('n', '', '%y+', { desc = 'File copy whole' }) -- Move between windows with arrows map('n', '', '', { desc = 'Move focus to the left window' }) map('n', '', '', { desc = 'Move focus to the right window' }) map('n', '', '', { desc = 'Move focus to the lower window' }) map('n', '', '', { desc = 'Move focus to the upper window' }) -- Double Q to close current window --map('n', 'qq', 'q', { silent = true, desc = 'CLose window' }) -- vim.api.nvim_create_autocmd('FileType', { -- pattern = 'TelescopePrompt', -- callback = function(params) -- vim.keymap.set('', 'qq', '', { noremap = true, buffer = params.buf }) -- end, -- }) -- Keep cursor centered when PgUp & PgDown map({ 'n', 'i', 'v' }, '', 'normal zz', { desc = 'Page up' }) map({ 'n', 'i', 'v' }, '', 'normal zz', { desc = 'Page down' }) -- Redirect command output and allow edit map('c', '', function() require('noice').redirect(vim.fn.getcmdline()) end, { desc = 'Redirect Cmdline' }) -- LSP specific mappings vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), callback = function(event) local map = function(keys, fn, desc) vim.keymap.set('n', keys, fn, { buffer = event.buf, desc = 'LSP: ' .. desc }) end local builtin = require 'telescope.builtin' map('gd', builtin.lsp_definitions, '[G]oto [D]efinition') map('gr', builtin.lsp_references, '[G]oto [R]eferences') map('gi', builtin.lsp_implementations, '[G]oto [I]mplementation') map('gt', builtin.lsp_type_definitions, '[G]oto [T]ype Definition') map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclarations') map('gic', builtin.lsp_incoming_calls, '[G]oto [I]ncoming [C]alls') map('goc', builtin.lsp_outgoing_calls, '[G]oto [O]utgoing [C]alls') end, })