summary refs log tree commit diff
path: root/.vim/plugin/keymaps.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/plugin/keymaps.lua')
-rw-r--r--.vim/plugin/keymaps.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/.vim/plugin/keymaps.lua b/.vim/plugin/keymaps.lua
new file mode 100644
index 0000000..c48b1d7
--- /dev/null
+++ b/.vim/plugin/keymaps.lua
@@ -0,0 +1,29 @@
+local set = vim.keymap.set
+
+set('n', 'gb', '<cmd>bnext<cr>', { desc = 'Next buffer' })
+set('n', 'gB', '<cmd>bprevious<cr>', { desc = 'Prev buffer' })
+
+set('n', ';yp', function()
+  local payload = (vim.fn.expand('%:p') .. ':' .. vim.fn.line('.'))
+  vim.fn.setreg('+', payload)
+  vim.notify(payload)
+end, { desc = 'Yank current buffer path and line number' })
+set('n', ';yP', function()
+  local payload = vim.fn.expand('%:p')
+  vim.fn.setreg('+', payload)
+  vim.notify(payload)
+end, { desc = 'Yank current buffer path' })
+set('n', ';yn', function()
+  local payload = vim.fs.basename(vim.fn.expand('%:p'))
+  vim.fn.setreg('+', payload)
+  vim.notify(payload)
+end, { desc = 'Yank current buffer name' })
+
+set('t', '<esc>', [[ <c-\><c-n> ]], { desc = 'Terminal: Exit INSERT mode' })
+
+set('v', '<', '<gv', { desc = 'indent' })
+set('v', '>', '>gv', { desc = 'outdent' })
+
+set('n', '<s-esc>', '<cmd>nohlsearch<cr>', { desc = 'Clear search highlights' })
+set('n', '<tab>', '<cmd>normal! za<cr>', { desc = 'Toggle fold under cursor' })
+set('n', '<s-tab>', '<cmd>normal! zA<cr>', { desc = 'Toggle fold under cursor (recursive)' })