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
163
164
165
|
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>e", "<cmd>Oil --float<CR>")
vim.keymap.set("n", "<leader>n", "<cmd>set nu!<CR>")
vim.keymap.set("n", "<leader>rn", "<cmd>set rnu!<CR>")
vim.keymap.set("n", "<CR>", "<cmd>nohl<CR>")
vim.keymap.set("n", "<leader>x", "<cmd>bw<CR>")
vim.keymap.set("n", "<leader>n", "<cmd>bn<CR>")
vim.keymap.set("n", "<leader>p", "<cmd>bp<CR>")
vim.keymap.set("n", "<leader>fb", "=ap")
vim.keymap.set("n", "<leader>m", "<cmd>make<CR>")
vim.keymap.set("n", "<leader><leader>", "<cmd>!chmod 755 %<CR>", { silent = true })
vim.keymap.set("n", "<A-J>", ":m .+1<CR>==")
vim.keymap.set("n", "<A-K>", ":m .-2<CR>==")
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "<A-a>", "<C-a>")
vim.keymap.set("n", "<A-x>", "<C-x>")
vim.keymap.set("v", ">", ">gv")
vim.keymap.set("v", "<", "<gv")
vim.keymap.set("n", "<leader>sl", "<cmd>exec \"normal i\".nr2char(getchar()).\"\\e\"<CR>")
vim.keymap.set("n", "<leader>sc", "<cmd>exec \"normal a\".nr2char(getchar()).\"\\e\"<CR>")
-- u/soer9459
vim.keymap.set("n", "<leader>,",
function()
local cursor = vim.api.nvim_win_get_cursor(0)
vim.cmd("norm A;")
vim.api.nvim_win_set_cursor(0, cursor)
end,
{ noremap = true, silent = true })
-- Switch between windows
vim.keymap.set("n", "<C-h>", "<C-w>h")
vim.keymap.set("n", "<C-l>", "<C-w>l")
vim.keymap.set("n", "<C-j>", "<C-w>j")
vim.keymap.set("n", "<C-k>", "<C-w>k")
vim.keymap.set("n", "<C-a>v", ":vsp<CR>")
vim.keymap.set("n", "<C-a>-", ":sp<CR>")
-- Switch between panes
vim.keymap.set("n", "<C-h>", "<cmd>TmuxNavigateLeft<CR>")
vim.keymap.set("n", "<C-l>", "<cmd>TmuxNavigateRight<CR>")
vim.keymap.set("n", "<C-j>", "<cmd>TmuxNavigateDown<CR>")
vim.keymap.set("n", "<C-k>", "<cmd>TmuxNavigateUp<CR>")
-- Color picker
vim.keymap.set("n", "<leader>cc", "<cmd>CccPick<CR>")
-- VimTex
vim.keymap.set("n", "<leader>ll", "<cmd>VimtexCompile<CR>")
vim.keymap.set("n", "<leader>vl", "<cmd>VimtexView<CR>")
-- Screenkey
vim.keymap.set("n", "<leader>sk", "<cmd>Screenkey<CR>")
-- Undotree
vim.cmd("packadd nvim.undotree")
vim.keymap.set("n", "<leader>u", require("undotree").open)
-- Telescope
local lazy_telescope = function()
if vim.g.telescope_loaded then return end
vim.g.telescope_loaded = true
vim.pack.add({
"https://github.com/nvim-lua/plenary.nvim",
{
src = "https://github.com/nvim-telescope/telescope.nvim",
version = "v0.2.2"
},
})
require("telescope").setup({
pickers = {
find_files = {
hidden = true,
find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/**" },
},
},
})
end
vim.keymap.set("n", "<leader>ff", function()
lazy_telescope()
vim.cmd("Telescope find_files")
end, {})
vim.keymap.set("n", "<leader>fw", function()
lazy_telescope()
vim.cmd("Telescope live_grep")
end, {})
vim.keymap.set("n", "<leader>fo", function()
lazy_telescope()
vim.cmd("Telescope buffers")
end, {})
vim.keymap.set("n", "<leader>fh", function()
lazy_telescope()
vim.cmd("Telescope help_tags")
end, {})
vim.keymap.set("n", "<leader>fz", function()
lazy_telescope()
vim.cmd("Telescope current_buffer_fuzzy_find")
end, {})
vim.keymap.set("n", "<leader>fg", function()
lazy_telescope()
vim.cmd("Telescope git_files")
end, {})
vim.keymap.set("n", "<leader>fd", function()
lazy_telescope()
vim.cmd("Telescope diagnostics")
end, {})
vim.keymap.set("n", "<leader>ft", function()
lazy_telescope()
local telescope = require("telescope.builtin")
local handle = io.popen("rg 'TODO'")
if handle == nil then return end
local result = handle:read("*a")
handle:close()
if result:match("[^\r\n]+") == nil then
local todo_files = {}
local files_handle = io.popen("rg --files -g 'TODO.{md,txt}'")
if files_handle == nil then return end
local files_result = files_handle:read("*a")
files_handle:close()
for file in files_result:gmatch("[^\r\n]+") do
table.insert(todo_files, file)
end
if #todo_files > 0 then
telescope.find_files({
prompt_title = "Choose TODO file",
cwd = vim.fn.getcwd(),
search_dirs = todo_files
})
else
vim.api.nvim_echo({ { "Failed to find any to-dos", "WarningMsg" } }, true, {})
end
else
telescope.grep_string({ search = "TODO" })
end
end, { noremap = true, silent = true })
-- Diagnostics, LSP
vim.keymap.set("n", "gl", "<cmd>lua vim.diagnostic.open_float()<CR>")
vim.keymap.set("n", "gp", "<cmd>lua vim.diagnostic.jump({ count = -1 })<CR>")
vim.keymap.set("n", "gn", "<cmd>lua vim.diagnostic.jump({ count = 1 })<CR>")
vim.api.nvim_create_autocmd("LspAttach", {
desc = "LSP actions",
callback = function(event)
local opts = { buffer = event.buf }
vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
vim.keymap.set("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
vim.keymap.set("n", "go", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
vim.keymap.set("n", "gs", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
vim.keymap.set({ "n", "x" }, "<S-f>", "<cmd>lua vim.lsp.buf.format({async = true})<CR>", opts)
-- u/Blan_11
vim.keymap.set("n", "<leader>lh", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, { silent = true, buffer = event.buf })
end
})
|