45 lines
2.3 KiB
Lua
45 lines
2.3 KiB
Lua
local map = vim.keymap.set
|
|
|
|
map('n', '<Space>', '<Nop>', { silent = true })
|
|
map('i', ',m', '<Esc>', { silent = true })
|
|
|
|
for _, mode in ipairs({ 'n', 'i', 'v', 's', 'x', 'c', 'o', 't' }) do
|
|
map(mode, '<C-g>', '<Esc>', { silent = true })
|
|
end
|
|
map('i', '<C-l>', '<Right>', { silent = true })
|
|
|
|
for _, direction in ipairs({ 'h', 'j', 'k', 'l' }) do
|
|
map('n', '<leader>w' .. direction, '<C-w>' .. direction, { desc = 'Move to window ' .. direction })
|
|
end
|
|
map('n', '<leader>fw', '<cmd>write<cr>', { desc = 'Write file' })
|
|
map('n', '<leader><leader>', '<C-^>', { desc = 'Alternate buffer' })
|
|
|
|
map('n', '<leader>ff', '<cmd>Telescope find_files<cr>', { desc = 'Find files' })
|
|
map('n', '<leader>fb', '<cmd>Oil .<cr>', { desc = 'Browse current directory' })
|
|
map('n', '<leader>fc', '<cmd>Oil<cr>', { desc = 'Browse file directory' })
|
|
map('n', '<leader>fo', '<cmd>Oil<cr>', { desc = 'Open file directory' })
|
|
map('n', '<leader>ps', '<cmd>Telescope live_grep<cr>', { desc = 'Search text' })
|
|
map('n', '<leader>bs', '<cmd>Telescope buffers<cr>', { desc = 'Search buffers' })
|
|
map('n', '<leader>sr', '<cmd>GrugFar<cr>', { desc = 'Search and replace' })
|
|
map('n', '<leader>rsr', '<cmd>GrugFarWithin<cr>', { desc = 'Open range replacement' })
|
|
|
|
map({ 'n', 'x' }, '<leader>ca', vim.lsp.buf.code_action, { desc = 'Code action' })
|
|
map('n', '<leader>lgd', vim.lsp.buf.definition, { desc = 'Go to definition' })
|
|
map('n', '<leader>lgD', vim.lsp.buf.declaration, { desc = 'Go to declaration' })
|
|
map('n', '<leader>lgr', vim.lsp.buf.references, { desc = 'Find references' })
|
|
map('n', '<leader>lgi', vim.lsp.buf.implementation, { desc = 'Go to implementation' })
|
|
map('n', '<leader>lr', vim.lsp.buf.rename, { desc = 'Rename symbol' })
|
|
map('n', '<leader>lf', function()
|
|
require('conform').format({ async = true, lsp_format = 'fallback' })
|
|
end, { desc = 'Format buffer' })
|
|
map('x', '<leader>lrf', vim.lsp.buf.format, { desc = 'Format selection' })
|
|
map('n', 'K', function()
|
|
vim.lsp.buf.hover({ border = 'rounded', max_width = 80 })
|
|
end, { desc = 'Hover documentation' })
|
|
|
|
map('n', '<leader>lld', function()
|
|
vim.diagnostic.open_float({ scope = 'line', border = 'rounded' })
|
|
end, { desc = 'Line diagnostics' })
|
|
map('n', '<leader>lwd', '<cmd>Trouble diagnostics toggle<cr>', { desc = 'Workspace diagnostics' })
|
|
map('n', '<leader>ldd', '<cmd>Trouble diagnostics toggle filter.buf=0<cr>', { desc = 'Buffer diagnostics' })
|