aboutsummaryrefslogblamecommitdiff
path: root/.config/nvim/lua/keybinds.lua
blob: 6094a61042cbb09078d1b800949c140e35bcf327 (plain) (tree)
1
2
3
4
5
6
7
8
                                              
                               
                          
                                       
                                
                                                   
 
                     







                                                          




                                         


                                                            
                                                             
                                                           
                                                            
 

                                                       
                                                       

                                                           
                                                                
                                                        
 
                                                      

                                                              
                                                      
                                                                               
 

                                                   
                                                    

                                                  
                                           
                                           
                      
    
 

                                                           







                                                               
                                               
 

                                 

























                                                
                            
local telescope = require("telescope.builtin")
local wk = require("which-key")
local ufo = require("ufo")
local nt_api = require("nvim-tree.api")
local spider = require("spider")
local toggle_plain = require("utils").toggle_plain;

vim.g.mapleader = " "

vim.api.nvim_command("nnoremap <A-j> :m .+1<CR>==")
vim.api.nvim_command("nnoremap <A-k> :m .-2<CR>==")
vim.api.nvim_command("inoremap <A-k> <Esc>:m .-2<CR>==gi")
vim.api.nvim_command("inoremap <A-j> <Esc>:m .+1<CR>==gi")
vim.api.nvim_command("vnoremap <A-j> :m '>+1<CR>gv=gv")
vim.api.nvim_command("vnoremap <A-k> :m '<-2<CR>gv=gv")

vim.keymap.set("i", "<C-a>", "<Home>")
vim.keymap.set("i", "<C-e>", "<End>")
vim.keymap.set("i", "<A-f>", "<C-Right>")
vim.keymap.set("i", "<A-b>", "<C-Left>")

vim.keymap.set("n", "<Leader>n", nt_api.tree.toggle)
vim.keymap.set("n", "<Leader><CR>", vim.lsp.buf.code_action)
vim.keymap.set("n", "<Leader>K", vim.lsp.buf.hover)
vim.keymap.set({ "n"; "v" }, "<Leader>F", vim.lsp.buf.format)
vim.keymap.set("n", "<Leader>d", vim.diagnostic.open_float)
vim.keymap.set("n", "<Leader>J", vim.lsp.buf.signature_help)

vim.keymap.set("n", "<Leader>fF", telescope.find_files)
vim.keymap.set("n", "<Leader>ff", telescope.live_grep)
vim.keymap.set("n", "<Leader><TAB>", telescope.buffers)
vim.keymap.set("n", "<Leader>D", telescope.lsp_definitions)
vim.keymap.set("n", "<Leader>R", telescope.lsp_references)
vim.keymap.set("n", "<Leader>S", telescope.lsp_document_symbols)
vim.keymap.set("n", "<Leader>U", vim.cmd.UndotreeToggle)

vim.keymap.set("n", "<Leader>m", ":MinimapToggle<CR>")
vim.keymap.set("n", "<Leader>b", ":Gitsigns blame_line<CR>")
vim.keymap.set("n", "<Leader>h", ":Gitsigns preview_hunk<CR>")
vim.keymap.set("n", "<Leader>,", ":TroubleToggle<CR>")
vim.keymap.set("n", "<Leader>t", ":belowright split | resize 5 | terminal<CR>")

vim.keymap.set("n", "<Leader>[", ufo.openAllFolds)
vim.keymap.set("n", "<Leader>]", ufo.closeAllFolds)
vim.keymap.set("n", "<Leader>r", vim.lsp.buf.rename)
vim.keymap.set("n", "<Leader>N", ":bnext<CR>")
vim.keymap.set("n", "<Leader>P", ":bprevious<CR>")
vim.keymap.set("n", "<Leader>L", function()
	vim.g.__plain = not (vim.g.__plain)
	toggle_plain()
end)

local spider_opts = { skipInsignificantPunctuation = true }

vim.keymap.set({ "n"; "o"; "x" }, "<A-w>",
               function() spider.motion("w", spider_opts) end)
vim.keymap.set({ "n"; "o"; "x" }, "<A-e>",
               function() spider.motion("e", spider_opts) end)
vim.keymap.set({ "n"; "o"; "x" }, "<A-b>",
               function() spider.motion("b", spider_opts) end)
vim.keymap.set({ "n"; "o"; "x" }, "<A-g><A-e>",
               function() spider.motion("ge", spider_opts) end)
vim.keymap.set({ "t" }, "<ESC>", "<C-\\><C-n>")

vim.opt.whichwrap = "<,>,h,l,[,]"

wk.add({
    { "<leader>,", desc = "Show errors" },
    { "<leader><CR>", desc = "Quick Action" },
    { "<leader><TAB>", desc = "Show buffers" },
    { "<leader>D", desc = "Definition" },
    { "<leader>F", desc = "Format" },
    { "<leader>J", desc = "Signature help" },
    { "<leader>K", desc = "Hover" },
    { "<leader>L", desc = "Toggle plain mode" },
    { "<leader>N", desc = "Next tab" },
    { "<leader>P", desc = "Previous tab" },
    { "<leader>R", desc = "Show References" },
    { "<leader>S", desc = "Symbols" },
    { "<leader>U", desc = "Undo tree" },
    { "<leader>[", desc = "Open folds" },
    { "<leader>]", desc = "Close folds" },
    { "<leader>b", desc = "Blame line" },
    { "<leader>d", desc = "Show diagnostics" },
    { "<leader>f", desc = "Find files" },
    { "<leader>h", desc = "Preview hunk" },
    { "<leader>m", desc = "Toggle Minimap" },
    { "<leader>n", desc = "Show file tree" },
    { "<leader>q", desc = "Quit" },
    { "<leader>r", desc = "Rename" },
    { "<leader>s", desc = "Save file" },
    { "<leader>t", desc = "Open terminal" },
}, { prefix = "<leader>" });