summaryrefslogtreecommitdiffstats
path: root/nvim/lua/core/keymaps.lua
blob: 5e92c29d038ca685a6ac4e22a96051f436c4b89a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
local fzf = require("fzf-lua")
map = vim.keymap.set

map("n", "<M-Up>",    "<cmd>resize +2<cr>",          { desc = "Increase height" })
map("n", "<M-Down>",  "<cmd>resize -2<cr>",          { desc = "Decrease height" })
map("n", "<M-Left>",  "<cmd>vertical resize +2<cr>", { desc = "Decrease width" })
map("n", "<M-Right>", "<cmd>vertical resize -2<cr>", { desc = "Increase width" })

if  vim.g.neovide then
    map("n", "<M-h>", "<C-w>h")
    map("n", "<M-j>", "<C-w>j")
    map("n", "<M-k>", "<C-w>k")
    map("n", "<M-l>", "<C-w>l")
else 
    map("n", "<C-h>", "<C-w>h")
    map("n", "<C-j>", "<C-w>j")
    map("n", "<C-k>", "<C-w>k")
    map("n", "<C-l>", "<C-w>l")
end

-- generate ctags
map("n", "<M-c>", "<cmd>!ctags -R<cr>", {  noremap = true, silent = true, desc = "generate ctags"  })

-- jump to tag
map("n", "gd", "<C-]>", { desc = "Jump to tag/definition" })

-- basic window splits
map("n", "<leader>v",  "<cmd>vsplit<cr>", { desc = "Vertical split" })
map("n", "<leader>h",  "<cmd>split<cr>",  { desc = "Horizontal split" })

-- tab stuff i never use
map("n", "<leader>to", "<cmd>tabnew<cr>", { desc = "New tab" })
map("n", "<leader>tc", "<cmd>tabclose<cr>", { desc = "Close tab" })
map("n", "<leader>tl", "<cmd>tabnext<cr>", { desc = "Next tab" })
map("n", "<leader>th", "<cmd>tabprevious<cr>", { desc = "Prev tab" })

----------------------------------------------------------------------------
-- primaegan cool
map("v", "J", ":m '>+1<CR>gv=gv", { silent = true })
map("v", "K", ":m '<-2<CR>gv=gv", { silent = true })

-- EDITING ---------------------------------------------------------------
map("v", "J", ":m '>+1<CR>gv=gv", { silent = true, desc = "Move line down" })
map("v", "K", ":m '<-2<CR>gv=gv", { silent = true, desc = "Move line up" })
map("v", "<", "<gv", { desc = "Indent left (keep selection)" })
map("v", ">", ">gv", { desc = "Indent right (keep selection)" })
map({ "n", "x" }, "<leader>p", [["_dP]], { desc = "Paste (keep register)" })

map({"n", "x"}, "<leader>p", [["_dP]], { desc = "Paste (keep register)" })
----------------------------------------------------------------------------

-- center cursor when using teleportation
map("n", "<C-d>", "<C-d>zz")
map("n", "<C-u>", "<C-u>zz")

map("n", "n", "nzz")
map("n", "N", "Nzz")

-- i keep forgetting i have these!!
map("n", "<M-r>", ":%s/\\v", { desc = "Search & Replace (Global)" })
map("v", "<M-r>", ":s/\\v",  { desc = "Search & Replace (Selection)" })

-- cuz its ez
map("n", "<leader>w",  "<cmd>w<cr>",           { desc = "Save" })
map("n", "<leader>q",  "<cmd>q<cr>",           { desc = "Quit" })

map('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })

-- open oil 
map("n", "-", "<cmd>Oil<cr>",         { desc = "Open Oil" })

-- BUFFERS ---------------------------------------------------------------
map("n", "<leader>bn", "<cmd>bnext<cr>",       { desc = "Next buffer" })
map("n", "<leader>bp", "<cmd>bprevious<cr>",   { desc = "Prev buffer" })
map("n", "<leader>bd", "<cmd>bdelete!<cr>",    { desc = "Delete buffer" })
map("n", "<leader>ba", "<cmd>%bd|e#|bd#<cr>",  { desc = "Close other buffers" })

 -- Disable default C-w
vim.keymap.set('n', '<C-w>', '<Nop>', { noremap = true })

-- fzf lua
map("n", "<leader>cd", fzf.zoxide,                        { noremap = true, silent = true, desc = "Zoxide" })
map("n", "<leader>tg", fzf.tags,                          { noremap = true, silent = true, desc = "Tags" })
map("n", "<M-p>",      fzf.files,                         { noremap = true, silent = true, desc = "Files" })
map("n", "<M-f>",      fzf.grep,                          { noremap = true, silent = true, desc = "Grep project" })
map("n", "<M-g>",      fzf.grep_curbuf,                   { noremap = true, silent = true, desc = "Grep buffer" })
map("n", "<M-s>",      fzf.grep_cword,                    { noremap = true, silent = true, desc = "Grep word under cursor" })
map("n", "<M-e>",      fzf.live_grep_native,                    { noremap = true, silent = true, desc = "fast grep" })