.config/nvim/lua/config/maps.lua

changeset 1064
fcfa295076a8
parent 1036
4da4e68e1796
child 1065
23229c179f82
equal deleted inserted replaced
1063:2763a54b0410 1064:fcfa295076a8
1
2 local function map(mode, lhs, rhs, opts) 1 local function map(mode, lhs, rhs, opts)
3 opts = opts or {} 2 opts = opts or {}
4 opts.silent = opts.silent ~= false 3 opts.silent = opts.silent ~= false
5 vim.keymap.set(mode, lhs, rhs, opts) 4 vim.keymap.set(mode, lhs, rhs, opts)
6 end 5 end
7 6
8 map("n", "<F2>", ":20Lexplore<CR>") 7 map("n", "<F2>", ":20Lexplore<CR>")
9 map("n", "<F3>", "n") 8 map("n", "<F3>", "n")
10 map("n", "<S-F3>", "N") 9 map("n", "<S-F3>", "N")
11 map("", "<F4>", ":let v:hlsearch = !v:hlsearch<CR>") 10 map("", "<F4>", ":let v:hlsearch = !v:hlsearch<CR>")
12 map("n", "<F5>", ":UndotreeToggle<CR>") 11 map("n", "<F5>", ":UndotreeToggle<CR>")
13 map("n", "<F8>", ":TagbarToggle<CR>") 12 map("n", "<F8>", ":TagbarToggle<CR>")
14 13
15 -- Allow :noh even in insert mode 14 -- Allow :noh even in insert mode
16 map("i", "<F4>", "<C-O><F4>") 15 map("i", "<F4>", "<C-O><F4>")
34 map("n", "<C-Left>", "<cmd>vertical resize -2<cr>") 33 map("n", "<C-Left>", "<cmd>vertical resize -2<cr>")
35 map("n", "<C-Right>", "<cmd>vertical resize +2<cr>") 34 map("n", "<C-Right>", "<cmd>vertical resize +2<cr>")
36 35
37 -- buffer switching 36 -- buffer switching
38 map("n", "gb", "<C-^>") 37 map("n", "gb", "<C-^>")
39 map("n", "gB", ":ls<CR>:b ", {silent = false}) 38 map("n", "gB", ":ls<CR>:b ", { silent = false })
40 39
41 -- Select last paste, in the same mode it was pasted in 40 -- Select last paste, in the same mode it was pasted in
42 map("n", "gV", "'`[' . strpart(getregtype(), 0, 1) . '`]'", {expr=true}) 41 map("n", "gV", "'`[' . strpart(getregtype(), 0, 1) . '`]'", { expr = true })
43 42
44 -- Add undo break-points 43 -- Add undo break-points
45 map("i", ",", ",<c-g>u") 44 map("i", ",", ",<c-g>u")
46 map("i", ".", ".<c-g>u") 45 map("i", ".", ".<c-g>u")
47 map("i", ";", ";<c-g>u") 46 map("i", ";", ";<c-g>u")
48 47
49 -- better indenting 48 -- better indenting
50 map("v", "<", "<gv") 49 map("v", "<", "<gv")
51 map("v", ">", ">gv") 50 map("v", ">", ">gv")
52 51
53 map("n", "j", "v:count == 0 ? 'gj' : 'j'", {expr = true}) 52 map("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true })
54 map("n", "k", "v:count == 0 ? 'gk' : 'k'", {expr = true}) 53 map("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true })
55 54
56 -- Use ltag over tselect 55 -- Use ltag over tselect
57 map("n", "g<C-]>", ":exe 'ltag ' . expand('<cword>') | lopen<CR>") 56 map("n", "g<C-]>", ":exe 'ltag ' . expand('<cword>') | lopen<CR>")
58 57
59 -- clear all interestingwords with \\k since \K is ri.vim 58 -- clear all interestingwords with \\k since \K is ri.vim
72 map("n", "<leader>tm", ":Tabularize methods<CR>") 71 map("n", "<leader>tm", ":Tabularize methods<CR>")
73 72
74 map("n", "<leader>a", ":call vimrc#AutoFmtToggle()<CR>") 73 map("n", "<leader>a", ":call vimrc#AutoFmtToggle()<CR>")
75 74
76 -- LSP features 75 -- LSP features
77 map('n', '<leader>d', vim.diagnostic.open_float) 76 map("n", "<leader>d", vim.diagnostic.open_float)
78 map('n', '[d', vim.diagnostic.goto_prev) 77 map("n", "[d", vim.diagnostic.goto_prev)
79 map('n', ']d', vim.diagnostic.goto_next) 78 map("n", "]d", vim.diagnostic.goto_next)
80 map('n', '<leader>ld', vim.diagnostic.setloclist) 79 map("n", "<leader>ld", vim.diagnostic.setloclist)
81 80
82 vim.api.nvim_create_augroup("lsp_attach", {}) 81 vim.api.nvim_create_augroup("lsp_attach", {})
83 82
84 vim.api.nvim_create_autocmd("LspAttach", { 83 vim.api.nvim_create_autocmd("LspAttach", {
85 group = "lsp_attach", 84 group = "lsp_attach",
86 callback = function(args) 85 callback = function(args)
87 local bufnr = args.buf 86 local bufnr = args.buf
88 local bufopts = { buffer=bufnr } 87 local bufopts = { buffer = bufnr }
89 88
90 map('n', 'gD', vim.lsp.buf.declaration, bufopts) 89 map("n", "gD", vim.lsp.buf.declaration, bufopts)
91 map('n', 'gd', vim.lsp.buf.definition, bufopts) 90 map("n", "gd", vim.lsp.buf.definition, bufopts)
92 map('n', 'K', vim.lsp.buf.hover, bufopts) 91 map("n", "K", vim.lsp.buf.hover, bufopts)
93 map('n', 'gi', vim.lsp.buf.implementation, bufopts) 92 map("n", "gi", vim.lsp.buf.implementation, bufopts)
94 map('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) 93 map("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
95 map('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bufopts) 94 map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, bufopts)
96 map('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bufopts) 95 map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, bufopts)
97 map('n', '<leader>wl', function() 96 map("n", "<leader>wl", function()
98 print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 97 print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
99 end, bufopts) 98 end, bufopts)
100 map('n', '<leader>D', vim.lsp.buf.type_definition, bufopts) 99 map("n", "<leader>D", vim.lsp.buf.type_definition, bufopts)
101 map('n', '<leader>rn', vim.lsp.buf.rename, bufopts) 100 map("n", "<leader>rn", vim.lsp.buf.rename, bufopts)
102 map('n', '<leader>ca', vim.lsp.buf.code_action, bufopts) 101 map("n", "<leader>ca", vim.lsp.buf.code_action, bufopts)
103 map('n', 'gr', vim.lsp.buf.references, bufopts) 102 map("n", "gr", vim.lsp.buf.references, bufopts)
104 map('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts) 103 map("n", "<leader>f", function()
104 vim.lsp.buf.format({ async = true })
105 end, bufopts)
105 end, 106 end,
106 }) 107 })
107

mercurial