summary refs log tree commit diff
path: root/.config/nvim/lua/config/keymaps.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/config/keymaps.lua')
-rw-r--r--.config/nvim/lua/config/keymaps.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua
new file mode 100644
index 0000000..9c00f7b
--- /dev/null
+++ b/.config/nvim/lua/config/keymaps.lua
@@ -0,0 +1,36 @@
+local map = vim.keymap.set
+
+map('n', 'gb', '<cmd>bnext<cr>', { desc = 'Buffer next' })
+map('n', 'gB', '<cmd>bprevious<cr>', { desc = 'Buffer prev' })
+
+map('n', '<a-j>', '<cmd>cnext<cr>', { desc = 'Quickfix next' })
+map('n', '<a-k>', '<cmd>cprev<cr>', { desc = 'Quickfix prev' })
+
+map('v', '<', '<gv', { desc = 'Indent' })
+map('v', '>', '>gv', { desc = 'Outdent' })
+
+map('t', '<esc>', [[ <c-\><c-n> ]], { desc = 'Terminal: Exit INSERT mode' })
+
+map(
+  'n',
+  'gx',
+  '<cmd>lua vim.ui.open(vim.fn.expand("<cfile>"))<cr>',
+  { desc = 'Open file under cursor' }
+)
+
+vim.api.nvim_create_autocmd({'BufEnter', 'BufWinEnter'}, {
+  group = vim.api.nvim_create_augroup('bufclose', {}),
+  callback = function()
+    if vim.list_contains({'help', 'nofile', 'quickfix'}, vim.bo.buftype) then
+      map('', 'q', '<cmd>close<cr>', { desc = 'Close buffer', buffer = 0 })
+    end
+  end,
+})
+
+map('n', '<leader><leader>x', function()
+  local file = vim.fn.expand('%')
+  vim.cmd.source(file)
+  vim.notify('** sourced ' .. file, vim.log.levels.INFO)
+end, { desc = 'source current file' })
+
+map('n', '<leader>a', '<cmd>edit #<cr>', { desc = 'open alternative file' })