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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
vim.g.mapleader = " "
--Telescope keys
-- local builtin = require('telescope.builtin')
-- vim.keymap.set('n', '<leader>ps', function()
-- builtin.grep_string({ search = vim.fn.input("Grep > ") })
-- end)
-- vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
-- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
-- vim.keymap.set('n', "<leader>ps", builtin.live_grep,{})
-- vim.keymap.set('n', "<leader>pb", builtin.buffers,{})
-- vim.keymap.set('n', '<leader>ff', '<cmd>Telescope find_files search_dirs=[".","D:/Optics/CODEV/Macros","C:/CODEV202403/macro","C:/CODEV202403/lens"] theme=dropdown<cr>')
vim.keymap.set('n', '<leader>ff', "<cmd>Telescope find_files cwd= theme=dropdown<cr>")
vim.keymap.set('n', '<leader>fm', "<cmd>Telescope find_files cwd=D:/Optics/CODEV/Macros theme=dropdown<cr>")
vim.keymap.set('n', '<leader>fc', "<cmd>Telescope find_files cwd=C:/CODEV202403/macro theme=dropdown<cr>")
vim.keymap.set('n', '<leader>fl', "<cmd>Telescope find_files cwd=C:/CODEV202403/lens theme=dropdown<cr>")
vim.keymap.set("n", "<leader>pp", "<cmd>Telescope file_browser cwd= theme=dropdown<cr>")
vim.keymap.set("n", "<leader>pm", "<cmd>Telescope file_browser cwd=D:/Optics/CODEV/Macros theme=dropdown<cr>")
vim.keymap.set("n", "<leader>pc", "<cmd>Telescope file_browser cwd=C:/CODEV202403/macro theme=dropdown<cr>")
vim.keymap.set("n", "<leader>pl", "<cmd>Telescope file_browser cwd=C:/CODEV202403/lens theme=dropdown<cr>")
vim.keymap.set('n', "<leader>gg", "<cmd>Telescope live_grep cwd= theme=dropdown<cr>")
vim.keymap.set('n', "<leader>gm", "<cmd>Telescope live_grep cwd=D:/Optics/CODEV/Macros theme=dropdown<cr>")
vim.keymap.set('n', "<leader>gc", "<cmd>Telescope live_grep cwd=C:/CODEV202403/macro theme=dropdown<cr>")
vim.keymap.set('n', "<leader>gl", "<cmd>Telescope live_grep cwd=C:/CODEV202403/lens theme=dropdown<cr>")
vim.keymap.set('n', "<leader>b", "<cmd>Telescope buffers theme=dropdown<cr>")
vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle)
vim.keymap.set('n', '<leader>G', vim.cmd.Git)
-- Language Server Keybindings
local lsp_zero = require('lsp-zero')
lsp_zero.on_attach(function(client, bufnr)
local opts = {buffer = bufnr, remap = false}
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
end)
require('mason').setup({})
require('mason-lspconfig').setup({
ensure_installed = {'tsserver', 'rust_analyzer'},
handlers = {
lsp_zero.default_setup,
lua_ls = function()
local lua_opts = lsp_zero.nvim_lua_ls()
require('lspconfig').lua_ls.setup(lua_opts)
end,
}
})
local cmp = require('cmp')
local cmp_select = {behavior = cmp.SelectBehavior.Select}
cmp.setup({
sources = {
{name = 'path'},
{name = 'nvim_lsp'},
{name = 'nvim_lua'},
},
formatting = lsp_zero.cmp_format(),
mapping = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.scroll_docs(-4),
['<C-n>'] = cmp.mapping.scroll_docs(4),
['<C-k>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-j>'] = cmp.mapping.select_next_item(cmp_select),
['<C-i>'] = cmp.mapping.confirm({ select = true }),
['<C-Space>'] = cmp.mapping.complete(),
}),
})
-- General Keybindings
vim.keymap.set("i", "jk", "<Esc>")
vim.keymap.set("n","<leader>w", "<cmd>w<cr>")
vim.keymap.set("n","<leader>q", "<cmd>q<cr>")
vim.keymap.set("n","<C-c>", "<cmd>bd<cr>")
vim.keymap.set("i","<C-c>", "<cmd>bd<cr>")
vim.keymap.set("n","<leader>Q", "<cmd>q!<cr>")
vim.keymap.set("n","<leader>o", "o<Esc>")
vim.keymap.set("n","<leader>O", "O<Esc>")
vim.keymap.set("i", "<leader>e", "<Space>e")
--File Formatting
vim.keymap.set("n","<leader>S", "ggVG=")
-- Moving Lines around
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "J", "mzJ`z")
--Fast Vertical Navigation
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
-- Search terms stay in the middle
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- pasting something instead of current text
vim.keymap.set("x", "<leader>p", [["_dP]])
-- copying into system clipboard
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
-- Put into Void Register
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
-- Quick Fix List Navingation
--vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
--vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
-- Terminal Navigation
-- vim.keymap.set("n", "<leader>tt", "<cmd>ToggleTerm size=60 direction=horizontal shell=powershell<cr>")
vim.keymap.set("n", "<leader>t", "<cmd>ToggleTerm<cr>")
-- vim.keymap.set("n", "<C-t>", "<cmd>ToggleTerm<cr>")
-- vim.keymap.set("i", "<C-t>", "<cmd>ToggleTerm<cr>")
-- vim.keymap.set("n", "<leader>tt", "<cmd>vertical 60 vsplit | terminal pwsh.exe<cr>")
-- vim.keymap.set("n", "<leader>tj", "<cmd>term pwsh.exe<cr>")
vim.keymap.set("t", "jk", [[<C-\><C-n>]])
vim.keymap.set("t", "<C-h>", [[<C-\><C-n><C-W>h]])
vim.keymap.set("t", "<C-j>", [[<C-\><C-n><C-W>j]])
vim.keymap.set("t", "<C-k>", [[<C-\><C-n><C-W>k]])
vim.keymap.set("t", "<C-l>", [[<C-\><C-n><C-W>l]])
--Sending lines and file to the internal terminal I had before <C-O> to make the cursor move to the previous position but this doesnt seem to be a good option
vim.keymap.set({"n", "i"},"<C-r><C-k>", "<cmd>ToggleTermSendCurrentLine<cr>j")
vim.keymap.set("n","<C-r><C-j>", "ggVG:'<,'>ToggleTermSendVisualLines<cr>")
vim.keymap.set("i","<C-r><C-j>", "<Esc>ggVG:'<,'>ToggleTermSendVisualLines<cr><Esc>i")
vim.keymap.set("v","<C-r><C-k>", ":ToggleTermSendVisualLines<cr><Esc>")
-- Buffer Navigation
vim.keymap.set("n", "<C-h>", [[<C-W>h]])
vim.keymap.set("n", "<C-j>", [[<C-W>j]])
vim.keymap.set("n", "<C-k>", [[<C-W>k]])
vim.keymap.set("n", "<C-l>", [[<C-W>l]])
-- Undo Remapping
vim.keymap.set("n", "U", "<C-r>")
-- Replace the Current Word everywhere
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
-- Nvim-Tree
-- vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<cr>")
-- BufferLine Navigation
-- vim.keymap.set("n", "<Tab>", "<cmd>BufferLineCycleNext<cr>")
-- vim.keymap.set("n", "<S-Tab>", "<cmd>BufferLineCyclePrev<cr>")
-- vim.keymap.set("n", "<C-w>", "<cmd>BufferLineCloseOthers<cr>")
-- Treesitter Context
vim.keymap.set("n", "[c", function()
require("treesitter-context").go_to_context()
end, { silent = true })
-- Docstring commands
vim.keymap.set("n","<leader>dc",[[i"""<Esc>o<Esc>o#<Space>Information:<Esc>o<Backspace><Backspace><Esc>o#<Space>Arguments:<Esc>o<Backspace><Backspace><Esc>o#<Space>Returns:<Esc>o<Backspace><Backspace><Esc>o"""<Esc>7k]])
--vim.keymap.set('n', '<C-p>', bultin.git_files,{})
--Oil.nvim keybinds
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
vim.keymap.set("n","<leader>m","<CMD>silent make<CR>")
|