···
local key_opt = { noremap = true, silent = true }
162
-
vim.api.nvim_set_keymap('', '<Space>', '<nop>', key_opt)
163
-
vim.api.nvim_set_keymap('', '<F1>', '<nop>', key_opt)
164
-
vim.api.nvim_set_keymap('i', '<F1>', '<nop>', key_opt)
163
+
vim.keymap.set('', '<Space>', '<nop>', { noremap = true, silent = true })
164
+
vim.keymap.set('', '<F1>', '<nop>', { noremap = true, silent = true })
-- period command in visual mode
167
-
vim.api.nvim_set_keymap('x', '.', ':norm.<CR>', key_opt)
167
+
vim.keymap.set('x', '.', '<cmd>norm .<cr>', { noremap = true, silent = true })
-- match ctrl-c to escape
170
-
vim.api.nvim_set_keymap('', '<c-c>', '<ESC>', key_opt)
171
-
vim.api.nvim_set_keymap('!', '<c-c>', '<ESC>', key_opt)
170
+
vim.keymap.set('', '<c-c>', '<esc>', { noremap = true, silent = true })
171
+
vim.keymap.set('!', '<c-c>', '<esc>', { noremap = true, silent = true })
174
-
vim.api.nvim_set_keymap('', '<c-w>,', ':vsp<CR>', key_opt)
175
-
vim.api.nvim_set_keymap('', '<c-w>.', ':sp<CR>', key_opt)
174
+
vim.keymap.set('', '<c-w>,', ':vsp<cr>', { noremap = true, silent = true })
175
+
vim.keymap.set('', '<c-w>.', ':sp<cr>', { noremap = true, silent = true })
-- remap semicolon to colon
178
-
vim.api.nvim_set_keymap('n', ';', ':', { noremap = true })
178
+
vim.keymap.set('n', ';', ':', { noremap = true, silent = true })
-- destructive x-commands
181
-
vim.api.nvim_set_keymap('', 'X', '"_d', key_opt)
182
-
vim.api.nvim_set_keymap('n', 'XX', '"_dd', key_opt)
183
-
vim.api.nvim_set_keymap('v', 'x', '"_d', key_opt)
184
-
vim.api.nvim_set_keymap('n', 'x', 'v"_d', key_opt)
181
+
vim.keymap.set('', 'X', '"_d', { noremap = true, silent = true })
182
+
vim.keymap.set('n', 'XX', '"_dd', { noremap = true, silent = true })
183
+
vim.keymap.set('v', 'x', '"_d', { noremap = true, silent = true })
184
+
vim.keymap.set('n', 'x', 'v"_d', { noremap = true, silent = true })
187
-
vim.api.nvim_set_keymap('x', 'Y', '"+y', key_opt)
188
-
vim.api.nvim_set_keymap('x', '<M-c>', '"+y', key_opt)
189
-
vim.api.nvim_set_keymap('x', '<M-v>', '"+p', key_opt)
190
-
vim.api.nvim_set_keymap('n', '<M-v>', '"+P', key_opt)
187
+
vim.keymap.set('x', 'Y', '"+y', { noremap = true, silent = true })
188
+
vim.keymap.set('x', '<m-c>', '"+y', { noremap = true, silent = true })
189
+
vim.keymap.set('x', '<m-v>', '"+p', { noremap = true, silent = true })
190
+
vim.keymap.set('n', '<m-v>', '"+P', { noremap = true, silent = true })
-- indentation in visual mode
193
-
vim.api.nvim_set_keymap('v', '<', '<gv', key_opt)
194
-
vim.api.nvim_set_keymap('v', '>', '>gv', key_opt)
193
+
vim.keymap.set('v', '<', '<gv', { noremap = true, silent = true })
194
+
vim.keymap.set('v', '>', '>gv', { noremap = true, silent = true })
-- swap visual gj, gk, with jk
197
-
vim.api.nvim_set_keymap('n', 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true })
198
-
vim.api.nvim_set_keymap('n', 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true })
199
-
vim.api.nvim_set_keymap('x', 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true })
200
-
vim.api.nvim_set_keymap('x', 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true })
197
+
vim.keymap.set({'n', 'x'}, 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true })
198
+
vim.keymap.set({'n', 'x'}, 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true})
203
-
vim.api.nvim_set_keymap('v', '@', ':<C-u>execute ":\'<,\'>normal @".nr2char(getchar())<CR>', key_opt)
201
+
vim.keymap.set('v', '@', ':<C-u>execute ":\'<,\'>normal @".nr2char(getchar())<CR>', { noremap = true, silent = true })
204
+
vim.keymap.set('n', '<bar>', '<cmd>norm zc<cr>', { noremap = true, silent = true })
205
+
vim.keymap.set('n', '<bslash>', '<cmd>norm za<cr>', { noremap = true, silent = true })
vim.g.maplocalleader = ' '
210
-
local key = require('which-key')
219
-
scroll_down = '<c-f>',
220
-
scroll_up = '<c-d>',
225
-
-- buffer shortcuts
226
-
["<leader>h"] = { "<cmd>bp<cr>", "Previous Buffer" },
227
-
["<leader>l"] = { "<cmd>bn<cr>", "Next Buffer" },
228
-
["<leader>j"] = { "<cmd>enew<cr>", "New Buffer" },
229
-
["<leader>j"] = { "<cmd>bp <bar> bd #<cr>", "Close Buffer" },
231
-
["<bar>"] = { "<cmd>normal zc<cr>", "Close Fold" },
232
-
["<bslash>"] = { "<cmd>normal za<cr>", "Open Fold" },
234
-
["-"] = { require('oil').open, "Open File Explorer" },
236
-
["<C-e>"] = { function() print(vim.inspect(vim.treesitter.get_captures_at_cursor(0))) end, "Output TS capture" },
212
+
vim.keymap.set('n', '<leader>h', '<cmd>bp<cr>', { desc = 'Previous Buffer' })
213
+
vim.keymap.set('n', '<leader>l', '<cmd>bn<cr>', { desc = 'Next Buffer' })
214
+
vim.keymap.set('n', '<leader>j', '<cmd>enew<cr>', { desc = 'New Buffer' })
215
+
vim.keymap.set('n', '<leader>k', '<cmd>bp <bar> bd #<cr>', { desc = 'Close Buffer' })
local function ignore_trouble_window()
···
289
-
-- global leader keybindings
290
-
local telescope_builtins = require('telescope.builtin')
291
-
local telescope_themes = require('telescope.themes')
267
+
vim.keymap.set('n', '<leader>b', function()
268
+
require('telescope.builtin').buffers()
269
+
end, { desc = 'Workspace Search' })
271
+
vim.keymap.set('n', '<leader>f', function()
272
+
require('telescope.builtin').live_grep()
273
+
end, { desc = 'Workspace Search' })
293
-
local function project_files()
275
+
vim.keymap.set('n', '<leader>n', function()
276
+
require('telescope.builtin').lsp_document_symbols(
277
+
require('telescope.themes').get_ivy({
278
+
ignore_symbols = { 'variable', 'constant', 'property' },
281
+
end, { desc = 'Document Symbols' })
283
+
vim.keymap.set('n', '<leader>N', function()
284
+
require('telescope.builtin').lsp_dynamic_workspace_symbols(
285
+
require('telescope.themes').get_ivy({
286
+
ignore_symbols = { 'variable', 'constant', 'property' },
289
+
end, { desc = 'Workspace Symbols' })
291
+
vim.keymap.set('n', '<leader>o', function()
292
+
local telescope_builtins = require('telescope.builtin')
vim.fn.system('git rev-parse --is-inside-work-tree')
if vim.v.shell_error == 0 then
telescope_builtins.git_files()
telescope_builtins.find_files()
302
-
local function document_symbols()
303
-
telescope_builtins.lsp_document_symbols(telescope_themes.get_ivy({
304
-
ignore_symbols = { 'variable', 'constant', 'property' },
308
-
local function workspace_symbols(opts)
309
-
telescope_builtins.lsp_dynamic_workspace_symbols(telescope_themes.get_ivy({
310
-
ignore_symbols = { 'variable', 'constant', 'property' },
315
-
["<leader>q"] = { "<cmd>Trouble qflist toggle<cr>", "Quickfix List" },
316
-
["<leader>p"] = { "<cmd>Trouble loclist toggle<cr>", "Location List" },
317
-
["<leader>d"] = { "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", "Document Diagnostics" },
318
-
["<leader>D"] = { "<cmd>Trouble diagnostics toggle<cr>", "Workspace Diagnostics" },
319
-
["<leader>o"] = { project_files, "Search Files in Workspace" },
320
-
["<leader>f"] = { telescope_builtins.live_grep, "Search in Files" },
321
-
["<leader>n"] = { document_symbols, "Document Symbols" },
322
-
["<leader>N"] = { workspace_symbols, "Workspace Symbols" },
323
-
["<leader>b"] = { telescope_builtins.buffers, "Search for Buffer" },
299
+
end, { desc = 'Workspace Files' })
vim.fn.sign_define("DiagnosticSignError", { text = "●", texthl = "DiagnosticSignError" })
···
326
+
vim.keymap.set('n', 'gk', vim.diagnostic.open_float, { desc = 'Show Diagnostic' })
327
+
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous Diagnostic' })
328
+
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next Diagnostic' })
-- customise hover window size
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
···
return vim.api.nvim_buf_get_var(buf, 'lsp:keys_attached')
vim.api.nvim_buf_set_var(buf, 'lsp:keys_attached', true)
387
-
d = { vim.lsp.buf.definition, "Go to Definition" },
388
-
D = { vim.lsp.buf.declaration, "Go to Declaration" },
389
-
y = { vim.lsp.buf.type_definition, "Go to Type Definition" },
390
-
i = { vim.lsp.buf.implementation, "Go to Implementation" },
391
-
r = { "<cmd>Trouble lsp toggle<cr>", "Show References" },
392
-
N = { vim.lsp.buf.rename, "Rename" },
393
-
f = { vim.lsp.buf.code_action, "Code Action" },
394
-
k = { vim.diagnostic.open_float, "Show Diagnostic" },
396
-
K = { vim.lsp.buf.hover, "Hover" },
397
-
["C-k"] = { vim.lsp.buf.signature_help, "Signature Help" },
398
-
["[d"] = { vim.diagnostic.goto_prev, "Previous Diagnostic "},
399
-
["]d"] = { vim.diagnostic.goto_prev, "Next Diagnostic "},
400
-
}, { buffer = buf })
365
+
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { desc = 'Go to definition', buffer = buf })
366
+
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { desc = 'Go to declaration', buffer = buf })
367
+
vim.keymap.set('n', 'gy', vim.lsp.buf.type_definition, { desc = 'Go to type definition', buffer = buf })
368
+
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { desc = 'Go to implementation', buffer = buf })
369
+
vim.keymap.set('n', 'gn', vim.lsp.buf.rename, { desc = 'Rename', buffer = buf })
370
+
vim.keymap.set('n', 'gf', vim.lsp.buf.code_action, { desc = 'Code Actions', buffer = buf })
371
+
vim.keymap.set('n', 'gr', '<cmd>Trouble lsp open<cr>', { desc = 'Show references', buffer = buf })
372
+
vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = buf })
373
+
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, { buffer = buf })
374
+
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, { buffer = buf })
···
550
+
vim.keymap.set('n', '<c-e', function()
551
+
print(vim.inspect(vim.treesitter.get_captures_at_cursor(0)))
552
+
end, { desc = 'Output Treesitter Token' })
require('lspkind').init {
default_file_explorer = true,
···
ssh = { border = 'none', },
keymaps_help = { border = 'none' },
610
+
vim.keymap.set('n', '-', require('oil').open, { noremap = true, silent = true })
vim.api.nvim_create_autocmd({ 'CursorHold' }, {
···
on_attach = function(buf)
local actions = require('gitsigns.actions')
784
-
["]c"] = { actions.next_hunk, "Next Git Hunk" },
785
-
["[c"] = { actions.next_hunk, "Previous Git Hunk" },
787
-
b = { function() actions.blame_line({ full = true }) end, "Blame Line" },
788
-
B = { actions.blame, "Blame Buffer" },
789
-
h = { function() actions.preview_hunk(true) end, "Show Git Hunk" },
790
-
s = { actions.stage_hunk, "Stage Git Hunk" },
791
-
S = { actions.undo_stage_hunk, "Unstage Git Hunk" },
792
-
t = { actions.diffthis, "Diff against HEAD" },
793
-
T = { function() actions.diffthis('~') end, "Diff against HEAD~1" },
795
-
}, { buffer = buf })
799
-
"<cmd><c-u>lua require('gitsigns.actions').select_hunk()<cr>",
802
-
}, { buffer = buf, mode = "o" })
806
-
"<cmd><c-u>lua require('gitsigns.actions').select_hunk()<cr>",
809
-
}, { buffer = buf, mode = "x" })
764
+
vim.keymap.set('n', ']c', function()
765
+
require('gitsigns.actions').next_hunk()
766
+
end, { desc = 'Next Git Hunk', buffer = buf })
767
+
vim.keymap.set('n', '[c', function()
768
+
require('gitsigns.actions').next_hunk()
769
+
end, { desc = 'Previous Git Hunk', buffer = buf })
770
+
vim.keymap.set('n', 'gb', function()
771
+
require('gitsigns.actions').blame_line({ full = true })
772
+
end, { desc = 'Blame Line', buffer = buf })
773
+
vim.keymap.set('n', 'gB', function()
774
+
require('gitsigns.actions').blame()
775
+
end, { desc = 'Blame Buffer', buffer = buf })
776
+
vim.keymap.set('n', 'gh', function()
777
+
require('gitsigns.actions').preview_hunk(true)
778
+
end, { desc = 'Show Git Hunk', buffer = buf })
779
+
vim.keymap.set('n', 'gs', function()
780
+
require('gitsigns.actions').stage_hunk()
781
+
end, { desc = 'Stage Git Hunk', buffer = buf })
782
+
vim.keymap.set('n', 'gS', function()
783
+
require('gitsigns.actions').stage_hunk()
784
+
end, { desc = 'Unstage Git Hunk', buffer = buf })
785
+
vim.keymap.set('n', 'gt', function()
786
+
require('gitsigns.actions').diffthis()
787
+
end, { desc = 'Diff against HEAD', buffer = buf })
788
+
vim.keymap.set('n', 'gT', function()
789
+
require('gitsigns.actions').diffthis('~')
790
+
end, { desc = 'Diff against HEAD~1', buffer = buf })
···
vim.opt_local.linebreak = true
920
+
vim.keymap.set('n', '<leader>q', '<cmd>Trouble qflist open<cr>', { desc = 'Quickfix list' })
921
+
vim.keymap.set('n', '<leader>p', '<cmd>Trouble loclist open<cr>', { desc = 'Location list' })
922
+
vim.keymap.set('n', '<leader>d', '<cmd>Trouble diagnostics open filter.buf=0<cr>', { desc = 'Document Diagnostics' })
923
+
vim.keymap.set('n', '<leader>D', '<cmd>Trouble diagnostics open<cr>', { desc = 'Workspace Diagnostics' })
require('dressing').setup {