summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/keymaps.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/keymaps.lua')
-rwxr-xr-x.config/nvim/lua/keymaps.lua68
1 files changed, 68 insertions, 0 deletions
diff --git a/.config/nvim/lua/keymaps.lua b/.config/nvim/lua/keymaps.lua
new file mode 100755
index 0000000..16de10f
--- /dev/null
+++ b/.config/nvim/lua/keymaps.lua
@@ -0,0 +1,68 @@
+vim.g.mapleader = " "
+local function keymap(mode, lhs, rhs, opts)
+ opts = opts or { noremap = true, silent = true }
+ vim.keymap.set(mode, lhs, rhs, opts)
+end
+
+keymap('n', '<leader><leader>',
+ function() require('luasnip').jump(1) end,
+ {noremap = true, silent = true})
+
+-- Map leader + s and v/h to open split
+keymap('n', '<leader>sp', ':sp<CR>')
+keymap('n', '<leader>sv', ':vsp<CR>')
+
+keymap('n', '<leader>q', ':q<CR>')
+
+keymap('n', '<C-q>', ':mksession!<space>nvim-session<Enter>:wqa<Enter>')
+keymap('n', '<C-s>', ':wa<Enter>:mksession!<space>nvim-session<Enter>')
+keymap('n', '<C-p>', ':source<space>nvim-session<Enter>')
+
+keymap('n', '<leader>y', '"+y')
+keymap('n', '<leader>d', '"+d')
+keymap('n', '<leader>p', '"+p')
+keymap('n', '<leader>Y', '"+Y')
+keymap('n', '<leader>D', '"+D')
+keymap('n', '<leader>P', '"+P')
+
+keymap('v', '<leader>y', '"+y')
+keymap('v', '<leader>d', '"+d')
+keymap('v', '<leader>p', '"+p')
+keymap('v', '<leader>Y', '"+Y')
+keymap('v', '<leader>D', '"+D')
+keymap('v', '<leader>P', '"+P')
+
+keymap('n', '<M-h>', '<C-w>h')
+keymap('n', '<M-k>', '<C-w>k')
+keymap('n', '<M-j>', '<C-w>j')
+keymap('n', '<M-l>', '<C-w>l')
+
+keymap('v', '<', '<gv')
+keymap('v', '>', '>gv')
+
+keymap('i', '<C-BS>', '<C-w>')
+
+vim.api.nvim_create_autocmd('User', {
+ pattern = 'LspAttached',
+ desc = 'LSP Keymaps',
+ callback = function()
+ local function bufmap(mode, lhs, rhs)
+ keymap(mode, lhs, rhs, { silent = true, noremap = true, buffer = true })
+ end
+
+ bufmap('n', 'gD', vim.lsp.buf.declaration)
+ bufmap('n', 'gd', vim.lsp.buf.definition)
+ bufmap('n', 'K', vim.lsp.buf.hover)
+ bufmap('n', 'gi', vim.lsp.buf.implementation)
+ bufmap('n', '<C-k>', vim.lsp.buf.signature_help)
+ bufmap('n', '<leader>wa', vim.lsp.buf.add_workspace_folder)
+ bufmap('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder)
+ bufmap('n', '<leader>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end)
+ bufmap('n', '<leader>D', vim.lsp.buf.type_definition)
+ bufmap('n', '<leader>rn', vim.lsp.buf.rename)
+ bufmap('n', '<leader>ca', vim.lsp.buf.code_action)
+ bufmap('n', 'gr', vim.lsp.buf.references)
+ bufmap('n', '<leader>f', vim.lsp.buf.formatting)
+ bufmap('n', '<leader>e', vim.diagnostic.open_float)
+ end
+})