summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/keymaps.lua
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2025-06-16 22:53:16 -0400
committerJack Jamison <jackqjamison@gmail.com>2025-06-16 22:53:16 -0400
commite72bc10296c0d4c145abd69a2b00bc8aad0004bb (patch)
treeaf922e03fac17212db8da13937f4b2d562dd4037 /.config/nvim/lua/keymaps.lua
parenta65f3404028bd734e5deb793aa6b765c638a34db (diff)
reorg
Diffstat (limited to '.config/nvim/lua/keymaps.lua')
-rw-r--r--.config/nvim/lua/keymaps.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/.config/nvim/lua/keymaps.lua b/.config/nvim/lua/keymaps.lua
new file mode 100644
index 0000000..548578f
--- /dev/null
+++ b/.config/nvim/lua/keymaps.lua
@@ -0,0 +1,46 @@
+-- Remap for dealing with word wrap
+vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
+vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
+
+-- Move to window using the <C-hjkl> keys
+vim.keymap.set('n', '<C-h>', '<C-w>h', { desc = 'Switch to left window' })
+vim.keymap.set('n', '<C-j>', '<C-w>j', { desc = 'Switch to lower window' })
+vim.keymap.set('n', '<C-k>', '<C-w>k', { desc = 'Switch to upper window' })
+vim.keymap.set('n', '<C-l>', '<C-w>l', { desc = 'Switch to right window' })
+
+-- Quickfix list
+vim.keymap.set('n', '[q', vim.cmd.cprev, { desc = 'Previous quickfix item' })
+vim.keymap.set('n', ']q', vim.cmd.cnext, { desc = 'Next quickfix item' })
+
+-- Diagnostics
+vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to prev diagnostic message' })
+vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
+vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
+vim.keymap.set('n', '<leader>q', vim.diagnostic.setqflist, { desc = 'Open diagnostic quickfix list' })
+
+-- Nagivation in insert
+vim.keymap.set({'i', 'c'}, '<C-h>', '<Left>', { desc = "Forward char" })
+vim.keymap.set({'i', 'c'}, '<C-j>', '<C-o>gj', { desc = "Up char" })
+vim.keymap.set({'i', 'c'}, '<C-k>', '<C-o>gk', { desc = "Down char" })
+vim.keymap.set({'i', 'c'}, '<C-l>', '<Right>', { desc = "Backward char" })
+
+-- <C-g> to exit
+vim.keymap.set({'i', 'n', 'v', 'c'}, '<C-g>', '<Esc>', { desc = "Exit mode" })
+vim.cmd('cmap <C-g> <C-c>')
+
+-- C-d to delete
+vim.keymap.set('i', '<C-d>', '<Del>', { desc = "Delete forward char"})
+
+-- Jump forward and back
+vim.keymap.set('n', '<C-l>', '$', { desc = "Delete forward char"})
+vim.keymap.set('n', '<C-h>', '_', { desc = "Delete forward char"})
+
+-- Insert at correct tab
+vim.keymap.set("n", "i", function()
+ local line = vim.api.nvim_get_current_line()
+ if #line == 0 then
+ return [["_cc]]
+ else
+ return "i"
+ end
+end, { expr = true, noremap = true })