]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/nvim/lua/config/keymaps.lua
neovim: configure, using ghostty and tmux
[julm/julm-nix.git] / home-manager / profiles / nvim / lua / config / keymaps.lua
1 -- Navigating text
2 vim.keymap.set("n", "i", "gk", {})
3 vim.keymap.set("n", "k", "gj", {})
4 vim.keymap.set("n", "j", "<Left>", {})
5 vim.keymap.set("n", "l", "<Right>", {})
6 vim.keymap.set("x", "i", "gk", {})
7 vim.keymap.set("x", "k", "gj", {})
8 vim.keymap.set("x", "j", "<Left>", {})
9 vim.keymap.set("x", "l", "<Right>", {})
10 vim.keymap.set("n", "J", "<Home>", {})
11 vim.keymap.set("n", "L", "<End>", {})
12
13 -- Navigating windows
14 vim.keymap.set("n", "<C-w>k", ":wincmd j<CR>", {})
15 vim.keymap.set("n", "<C-w>i", ":wincmd k<CR>", {})
16 vim.keymap.set("n", "<C-w>j", ":wincmd h<CR>", {})
17 vim.keymap.set("n", "<C-w>l", ":wincmd l<CR>", {})
18
19 -- Navigating the buffer list
20 vim.keymap.set("n", "<C-i>", ":bprevious!<CR>", { silent = true })
21 vim.keymap.set("n", "<C-k>", ":bnext!<CR>", { silent = true })
22 vim.keymap.set("n", "m", "<leader>fb", { desc = "Switch buffer", silent = true })
23 vim.keymap.set("n", "<leader>m", ":buffer #<CR>", { desc = "Go to last buffer", silent = true })
24 -- Navigating the location list
25 vim.keymap.set("n", "<C-j>", ":lprevious<CR>", {})
26 vim.keymap.set("n", "<C-l>", ":lnext<CR>", {})
27 -- Navigating the quickfix list
28 vim.keymap.set("n", "<C-u>", ":cprevious<CR>", {})
29 vim.keymap.set("n", "<C-o>", ":cnext<CR>", {})
30
31 -- Modifing text
32 --- Maintain Visual Mode after shifting > and <
33 vim.keymap.set("v", "<", "<gv", {})
34 vim.keymap.set("v", ">", ">gv", {})
35 --- Copy line
36 vim.keymap.set("n", "Y", "Vy", {})
37 --- Joining lines
38 vim.keymap.set("n", "K", ":join<CR>", {})
39
40 -- Searching text
41 vim.keymap.set(
42 "n",
43 "*",
44 ':set hls<CR>:let @/="\\\\<<C-r><C-w>\\\\>"<CR>/<BS>',
45 { silent = true, desc = "Search term under cursor in current buffer" }
46 )
47 vim.keymap.set("n", "<C-n>", function()
48 vim.api.nvim_command(
49 string.format(
50 "vimgrep /\\<%s\\>/g %s",
51 vim.fn.expand("<cword>"),
52 vim.fn.join(
53 vim.tbl_map(function(n)
54 return n.name
55 end, vim.fn.getbufinfo({ buflisted = 1 })),
56 " "
57 )
58 )
59 )
60 end, { silent = true, desc = "Search word under cursor in all buffers" })
61 vim.keymap.set(
62 "n",
63 "µ",
64 ':set hls<CR>:let @/="<C-r><C-w>"<CR>/<BS>',
65 { silent = true, desc = "Search subword under cursor in current buffers" }
66 )
67 vim.keymap.set("n", "<C-N>", function()
68 vim.api.nvim_command(string.format(
69 "vimgrep /%s/g %s",
70 vim.fn.expand("<cword>"),
71 vim.fn.join(
72 vim.tbl_map(function(n)
73 return n.name
74 end, vim.fn.getbufinfo({ buflisted = 1 })),
75 " "
76 )
77 ))
78 end, { silent = true, desc = "Search subword under cursor in all buffers" })