nvim: use new 0.7 vim.keymap.set api

This commit is contained in:
2023-07-08 15:20:41 +03:00
parent 72d4a48e4c
commit 86bf045a70

View File

@ -1,113 +1,101 @@
local function map(mode, lhs, rhs, opts)
local options = {noremap = false}
if opts then options = vim.tbl_extend('force', options, opts) end
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
local function noremap(mode, lhs, rhs, opts)
local options = {noremap = true}
if opts then options = vim.tbl_extend('force', options, opts) end
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
-- leader
vim.g.mapleader = ' '
-- visual block indenting
noremap('v', '<', '<gv')
noremap('v', '>', '>gv')
vim.keymap.set('v', '<', '<gv')
vim.keymap.set('v', '>', '>gv')
-- centered cursor
noremap('n', 'n', 'nzz')
noremap('n', 'N', 'Nzz')
noremap('n', 'J', 'mzJ`z')
vim.keymap.set('n', 'n', 'nzz')
vim.keymap.set('n', 'N', 'Nzz')
vim.keymap.set('n', 'J', 'mzJ`z')
-- escape terminal mode
noremap('t', '<Esc>', '<C-\\><C-n>')
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')
-- newline without entering insert mode
noremap('n', '<C-J>', 'o<Esc>')
noremap('n', '<C-K>', 'O<Esc>')
vim.keymap.set('n', '<C-J>', 'o<Esc>')
vim.keymap.set('n', '<C-K>', 'O<Esc>')
-- movement
noremap('n', '<leader>h', ':wincmd h<cr>')
noremap('n', '<leader>j', ':wincmd j<cr>')
noremap('n', '<leader>k', ':wincmd k<cr>')
noremap('n', '<leader>l', ':wincmd l<cr>')
vim.keymap.set('n', '<leader>h', ':wincmd h<cr>')
vim.keymap.set('n', '<leader>j', ':wincmd j<cr>')
vim.keymap.set('n', '<leader>k', ':wincmd k<cr>')
vim.keymap.set('n', '<leader>l', ':wincmd l<cr>')
-- splits and buffers
noremap('n', '<leader>sv', ':vsplit<CR>')
noremap('n', '<leader>sz', ':split<CR>')
noremap('n', '<leader>st', ':tabnew<CR>')
noremap('n', '<leader>sb', ':Telescope buffers<CR>')
noremap('n', '<leader>sh', ':tabprevious<cr>')
noremap('n', '<leader>sl', ':tabnext<cr>')
vim.keymap.set('n', '<leader>sv', ':vsplit<CR>')
vim.keymap.set('n', '<leader>sz', ':split<CR>')
vim.keymap.set('n', '<leader>st', ':tabnew<CR>')
vim.keymap.set('n', '<leader>sb', ':Telescope buffers<CR>')
vim.keymap.set('n', '<leader>sh', ':tabprevious<cr>')
vim.keymap.set('n', '<leader>sl', ':tabnext<cr>')
-- basics
noremap('n', '<leader>q', ':q<CR>')
noremap('n', '<leader>Q', ':qa<CR>')
noremap('n', '<leader>x', ':q!<CR>')
noremap('n', '<leader>X', ':qa!<CR>')
noremap('n', '<leader>w', ':w<CR>')
noremap('n', '<leader>W', ':wa<CR>')
noremap('n', '<leader>f', ':NvimTreeToggle<CR>')
noremap('n', '<leader>F', ':Telescope find_files<CR>')
vim.keymap.set('n', '<leader>q', ':q<CR>')
vim.keymap.set('n', '<leader>Q', ':qa<CR>')
vim.keymap.set('n', '<leader>x', ':q!<CR>')
vim.keymap.set('n', '<leader>X', ':qa!<CR>')
vim.keymap.set('n', '<leader>w', ':w<CR>')
vim.keymap.set('n', '<leader>W', ':wa<CR>')
vim.keymap.set('n', '<leader>f', ':NvimTreeToggle<CR>')
vim.keymap.set('n', '<leader>F', ':Telescope find_files<CR>')
-- toggle term
noremap('n', '<leader>c', ':ToggleTermToggleAll<CR>')
noremap('n', '<leader>C', ':ToggleTerm<CR>')
vim.keymap.set('n', '<leader>c', ':ToggleTermToggleAll<CR>')
vim.keymap.set('n', '<leader>C', ':ToggleTerm<CR>')
-- frequent actions
noremap('n', '<leader>ar', ':source ~/.config/nvim/init.lua<CR>')
noremap('n', '<leader>ac', ':cd ~/.config/nvim/<CR>')
vim.keymap.set('n', '<leader>ar', ':source ~/.config/nvim/init.lua<CR>')
vim.keymap.set('n', '<leader>ac', ':cd ~/.config/nvim/<CR>')
-- keymap switches
noremap('i', '<C-x>', '<Esc>:set keymap=<CR>a')
noremap('i', '<C-z>', '<Esc>:set keymap=hebrew<CR>a')
vim.keymap.set('i', '<C-x>', '<Esc>:set keymap=<CR>a')
vim.keymap.set('i', '<C-z>', '<Esc>:set keymap=hebrew<CR>a')
-- telescope
noremap('n', '<leader>tt', ':Telescope<CR>')
noremap('n', '<leader>tl', ':Telescope lsp_dynamic_workspace_symbols<CR>')
noremap('n', '<leader>to', ':Telescope oldfiles<CR>')
noremap('n', '<leader>tg', ':Telescope live_grep<CR>')
noremap('n', '<leader>ts', ':Telescope treesitter<CR>')
vim.keymap.set('n', '<leader>tt', ':Telescope<CR>')
vim.keymap.set('n', '<leader>tl', ':Telescope lsp_dynamic_workspace_symbols<CR>')
vim.keymap.set('n', '<leader>to', ':Telescope oldfiles<CR>')
vim.keymap.set('n', '<leader>tg', ':Telescope live_grep<CR>')
vim.keymap.set('n', '<leader>ts', ':Telescope treesitter<CR>')
-- code
noremap('n', '<leader>gf', ':Neoformat<CR>')
noremap('n', '<leader>gd', ':Telescope lsp_definitions<CR>')
noremap('n', '<leader>gi', ':Telescope lsp_implementations<CR>')
noremap('n', '<leader>gr', ':Telescope lsp_references<CR>')
noremap('n', '<leader>ga', ':Telescope lsp_code_actions<CR>')
noremap('n', '<leader>gq', ':Telescope diagnostics<CR>')
noremap('n', '<leader>gD', ':lua vim.lsp.buf.declaration()<CR>')
noremap('n', '<leader>gk', ':lua vim.lsp.buf.hover()<CR>')
noremap('n', '<leader>gt', ':lua vim.lsp.buf.type_definition()<CR>')
noremap('n', '<leader>gn', ':lua vim.lsp.buf.rename()<CR>')
noremap('n', '<leader>ge', ':lua vim.lsp.diagnostic.show_line_diagnostics()<CR>')
noremap('n', '[d', ':lua vim.lsp.diagnostic.goto_prev()<CR>')
noremap('n', ']d', ':lua vim.lsp.diagnostic.goto_next()<CR>')
vim.keymap.set('n', '<leader>gf', ':Neoformat<CR>')
vim.keymap.set('n', '<leader>gd', ':Telescope lsp_definitions<CR>')
vim.keymap.set('n', '<leader>gi', ':Telescope lsp_implementations<CR>')
vim.keymap.set('n', '<leader>gr', ':Telescope lsp_references<CR>')
vim.keymap.set('n', '<leader>ga', ':Telescope lsp_code_actions<CR>')
vim.keymap.set('n', '<leader>gq', ':Telescope diagnostics<CR>')
vim.keymap.set('n', '<leader>gD', function() vim.lsp.buf.declaration() end)
vim.keymap.set('n', '<leader>gk', function() vim.lsp.buf.hover() end)
vim.keymap.set('n', '<leader>gt', function() vim.lsp.buf.type_definition() end)
vim.keymap.set('n', '<leader>gn', function() vim.lsp.buf.rename() end)
vim.keymap.set('n', '<leader>ge', function() vim.lsp.diagnostic.show_line_diagnostics() end)
vim.keymap.set('n', '[d', function() vim.lsp.diagnostic.goto_prev() end)
vim.keymap.set('n', ']d', function() vim.lsp.diagnostic.goto_next() end)
-- debug mappings
noremap('n', '<leader>dc', ":lua require'dap'.continue()<CR>")
noremap('n', '<leader>dn', ":lua require'dap'.step_over()<CR>")
noremap('n', '<leader>di', ":lua require'dap'.step_into()<CR>")
noremap('n', '<leader>do', ":lua require'dap'.step_out()<CR>")
noremap('n', '<leader>db', ":lua require'dap'.toggle_breakpoint()<CR>")
noremap('n', '<leader>dl', ":lua require'dap'.run_last()<CR>")
noremap('n', '<leader>dq', ":lua require'dap'.close()<CR>")
noremap('n', '<leader>dv', ':Telescope dap variables<CR>')
noremap('n', '<leader>dh', ':Telescope dap commands<CR>')
noremap('n', '<leader>dp', ':Telescope dap list_breakpoints<CR>')
noremap('n', '<leader>du', ":lua require'dapui'.toggle()<CR>")
vim.keymap.set('n', '<leader>dc', function() require'dap'.continue() end)
vim.keymap.set('n', '<leader>dn', function() require'dap'.step_over() end)
vim.keymap.set('n', '<leader>di', function() require'dap'.step_into() end)
vim.keymap.set('n', '<leader>do', function() require'dap'.step_out() end)
vim.keymap.set('n', '<leader>db', function() require'dap'.toggle_breakpoint() end)
vim.keymap.set('n', '<leader>dl', function() require'dap'.run_last() end)
vim.keymap.set('n', '<leader>dq', function() require'dap'.close() end)
vim.keymap.set('n', '<leader>du', function() require'dapui'.toggle() end)
vim.keymap.set('n', '<leader>dv', ':Telescope dap variables<CR>')
vim.keymap.set('n', '<leader>dh', ':Telescope dap commands<CR>')
vim.keymap.set('n', '<leader>dp', ':Telescope dap list_breakpoints<CR>')
-- git
noremap('n', '<leader>vs', ':Git<CR>')
noremap('n', '<leader>vb', ':Telescope git_branches<CR>')
noremap('n', '<leader>vc', ':Telescope git_commits<CR>')
noremap('n', '<leader>vf', ':Telescope git_files<CR>')
vim.keymap.set('n', '<leader>vs', ':Git<CR>')
vim.keymap.set('n', '<leader>vb', ':Telescope git_branches<CR>')
vim.keymap.set('n', '<leader>vc', ':Telescope git_commits<CR>')
vim.keymap.set('n', '<leader>vf', ':Telescope git_files<CR>')
-- vsnip jumpable mappings
map('i', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
map('s', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
map('i', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-next)' : '<S-Tab>'", {expr = true})
map('s', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-next)' : '<S-Tab>'", {expr = true})
vim.keymap.set('i', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
vim.keymap.set('s', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
vim.keymap.set('i', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'", {expr = true})
vim.keymap.set('s', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>'", {expr = true})