refactor: use vim.keymap.set

This commit is contained in:
Max Hohlfeld 2024-12-17 16:50:36 +01:00
parent 9910524b91
commit db41615adf

View File

@ -1,9 +1,7 @@
local fn = vim.fn
local opt = vim.opt
local map = vim.api.nvim_set_keymap
local buf_map = vim.api.nvim_buf_set_keymap
local unmap = vim.api.nvim_del_keymap
local autocmd = vim.api.nvim_create_autocmd
local keymap = vim.keymap
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
@ -51,8 +49,11 @@ require('packer').startup(function()
use '~/projekte/zenburn.nvim' -- zenburn coloursheme
use 'rmagatti/auto-session' -- session management
use 'gbprod/substitute.nvim' -- substitue objects with yanked register without copying into register
use 'j-hui/fidget.nvim' -- notifications
end)
local builtin = require('telescope.builtin')
-- General Editor Settings
require("zenburn").setup()
@ -66,30 +67,38 @@ opt.statusline = ' %f %r %m%=%y %{&fileencoding?&fileencoding:&encoding}[%{&file
opt.completeopt = 'menuone,noinsert,noselect'
map('n', '<Space>w', '<cmd>w<cr>', { noremap = true })
map('n', '<Space>q', '<cmd>wq<cr>', { noremap = true })
map('n', '<Space>Q', '<cmd>wqa<cr>', { noremap = true })
map('n', '<Space>/', '<cmd>let @/ = ""<cr>', { noremap = true })
keymap.set('n', '<Space>w', '<cmd>w<cr>', { noremap = true })
keymap.set('n', '<Space>q', '<cmd>wq<cr>', { noremap = true })
keymap.set('n', '<Space>Q', '<cmd>wqa<cr>', { noremap = true })
keymap.set('n', '<Space>/', '<cmd>let @/ = ""<cr>', { noremap = true })
-- fix interpreting C-I as Tab
map('n', '<C-I>', '<C-I>', { noremap = true })
keymap.set('n', '<C-I>', '<C-I>', { noremap = true })
-- Splits
map('n', '<C-h>', '<C-w>h', { noremap = true })
map('n', '<C-j>', '<C-w>j', { noremap = true })
map('n', '<C-k>', '<C-w>k', { noremap = true })
map('n', '<C-l>', '<C-w>l', { noremap = true })
keymap.set('n', '<C-h>', '<C-w>h', { noremap = true })
keymap.set('n', '<C-j>', '<C-w>j', { noremap = true })
keymap.set('n', '<C-k>', '<C-w>k', { noremap = true })
keymap.set('n', '<C-l>', '<C-w>l', { noremap = true })
opt.splitbelow = true
opt.splitright = true
-- Using <leader> + number (1, 2, ... 9) to switch tab
for i=1,9,1
do
keymap.set('n', '<leader>'..i, i.."gt", { noremap = true })
end
keymap.set('n', '<leader>0', ":tablast<cr>", { noremap = true})
-- Autocommands
autocmd({ 'BufNewFile', 'BufRead' }, {
desc = 'When editing compileable documents, register commands for live preview',
pattern = { '*.md', '*.tex', '*.puml' },
callback = function()
buf_map(0, 'n', '<leader>p', '<cmd>lua require("compileDoc").open_document_preview()<CR>', { noremap = true })
buf_map(0, 'n', '<leader>P', '<cmd>lua require("compileDoc").close_document_preview()<CR>', { noremap = true })
local compileDoc = require('compileDoc')
keymap.set('n', '<leader>p', compileDoc.open_document_preview, { noremap = true, buffer = 0 })
keymap.set('n', '<leader>P', compileDoc.close_document_preview, { noremap = true, buffer = 0 })
end
})
@ -107,12 +116,7 @@ autocmd("FileType", {
},
callback = function(event)
vim.bo[event.buf].buflisted = false
buf_map(event.buf,
'n',
'q',
'<cmd>close<cr>',
{ silent = true, noremap = true }
)
keymap.set('n', 'q', '<cmd>close<cr>', { silent = true, noremap = true, buffer = event.buf })
end,
})
@ -125,53 +129,24 @@ autocmd({ "VimResized" }, {
end,
})
-- Spellcheck
_G.enable_spell = function(lang)
vim.bo.spelllang = lang
if lang ~= "" then
vim.wo.spell = true
map('n', 'ff', ']s', { noremap = true })
map('n', 'fF', '[s', { noremap = true })
map('n', 'fa', 'zg', { noremap = true })
map('n', 'fn', 'z=', { noremap = true })
map('n', 'fd', 'zuw=', { noremap = true })
print(lang .. " spellcheck enabled")
else
vim.wo.spell = false
unmap('n', 'ff')
unmap('n', 'fF')
unmap('n', 'fa')
unmap('n', 'fn')
unmap('n', 'fd')
print("spellcheck disabled")
end
-- return vim.api.nvim_replace_termcodes('<cr>', true, true, true)
end
map('n', 'ZD', 'v:lua.enable_spell("de")', { expr = true, silent = true })
map('n', 'ZE', 'v:lua.enable_spell("en")', { expr = true, silent = true })
map('n', 'ZS', 'v:lua.enable_spell("")', { expr = true, silent = true })
-- LSP
local lsp = require('lspconfig')
local on_attach = function(client, bufnr)
local on_attach = function(_, bufnr)
-- Mappings.
local opts = { noremap = true, silent = true, buffer = bufnr }
-- See `:help vim.lsp.*` for documentation on any of the below functions
vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
vim.keymap.set('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
vim.keymap.set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
vim.keymap.set('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
vim.keymap.set('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
vim.keymap.set({'n', 'v'}, '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
vim.keymap.set('n', '<leader>cf', function() vim.lsp.buf.format { async = true } end, opts)
keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
keymap.set('n', 'gr', vim.lsp.buf.references, opts)
keymap.set('n', 'K', vim.lsp.buf.hover, opts)
keymap.set('n', 'gk', vim.lsp.buf.signature_help, opts)
keymap.set('n', '<space>a', vim.lsp.buf.code_action, opts)
keymap.set('v', '<leader>a', vim.lsp.buf.code_action, opts)
keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
keymap.set('n', '<space>E', builtin.diagnostics, opts)
keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, opts)
-- Signature
require('lsp_signature').on_attach({
@ -229,13 +204,13 @@ lsp.lua_ls.setup {
-- Workaround for rust analyzer popping cancelation up https://github.com/neovim/neovim/issues/30985
for _, method in ipairs({ 'textDocument/diagnostic', 'workspace/diagnostic' }) do
local default_diagnostic_handler = vim.lsp.handlers[method]
vim.lsp.handlers[method] = function(err, result, context, config)
if err ~= nil and err.code == -32802 then
return
end
return default_diagnostic_handler(err, result, context, config)
local default_diagnostic_handler = vim.lsp.handlers[method]
vim.lsp.handlers[method] = function(err, result, context, config)
if err ~= nil and err.code == -32802 then
return
end
return default_diagnostic_handler(err, result, context, config)
end
end
-- Snippets
@ -345,10 +320,41 @@ require('nvim-ts-autotag').setup({
require 'nvim-autopairs'.setup {}
-- Telescope
map('n', '<Leader>ff', '<cmd>lua require("telescope.builtin").find_files()<cr>', { noremap = true })
map('n', '<leader>fg', '<cmd>lua require("telescope.builtin").live_grep()<cr>', { noremap = true })
map('n', '<leader>fb', '<cmd>lua require("telescope.builtin").buffers()<cr>', { noremap = true })
map('n', '<leader>fh', '<cmd>lua require("telescope.builtin").help_tags()<cr>', { noremap = true })
keymap.set('n', '<leader>ff', builtin.find_files, { noremap = true })
keymap.set('n', '<leader>fg', builtin.live_grep, { noremap = true })
keymap.set('n', '<leader>fb', builtin.buffers, { noremap = true })
keymap.set('n', '<leader>fh', builtin.help_tags, { noremap = true })
-- Spellcheck
local enable_spell = function(lang)
vim.bo.spelllang = lang
if lang ~= "" then
vim.wo.spell = true
keymap.set('n', 'fn', ']s', { noremap = true })
keymap.set('n', 'fb', '[s', { noremap = true })
keymap.set('n', 'fa', 'zg', { noremap = true })
keymap.set('n', 'ff', builtin.spell_suggest, { noremap = true })
keymap.set('n', 'fd', 'zuw=', { noremap = true })
print(lang .. " spellcheck enabled")
else
vim.wo.spell = false
keymap.del('n', 'fn')
keymap.del('n', 'fb')
keymap.del('n', 'fa')
keymap.del('n', 'ff')
keymap.del('n', 'fd')
print("spellcheck disabled")
end
-- return vim.api.nvim_replace_termcodes('<cr>', true, true, true)
end
keymap.set('n', 'ZD', function() enable_spell("de") end, { expr = true, silent = true })
keymap.set('n', 'ZE', function() enable_spell("en") end, { expr = true, silent = true })
keymap.set('n', 'ZS', function() enable_spell("") end, { expr = true, silent = true })
-- Vimwiki
require('mkdnflow').setup({
@ -375,7 +381,7 @@ require('mkdnflow').setup({
}
})
vim.keymap.set('n', '<leader>wd', function()
local create_todo_for_today = function()
local date_string = os.date("%Y-%m-%d")
local path = '/home/max/dokumente/wiki/todos/' .. date_string .. '.md'
@ -384,7 +390,9 @@ vim.keymap.set('n', '<leader>wd', function()
vim.api.nvim_put({ "# Todo - " .. date_string, "- [ ] " }, 'c', false, true)
end
vim.cmd.write()
end, { noremap = true })
end
keymap.set('n', '<leader>wd', create_todo_for_today, { noremap = true })
autocmd({ 'BufRead', 'BufNewFile' }, {
@ -393,8 +401,9 @@ autocmd({ 'BufRead', 'BufNewFile' }, {
callback = function()
vim.cmd('set awa')
vim.wo.conceallevel = 2
map('n', '<Leader>wf', '<cmd>lua require("telescope_customs").find_wiki()<cr>', { noremap = true })
map('n', '<Leader>wg', '<cmd>lua require("telescope_customs").grep_wiki()<cr>', { noremap = true })
local customs = require('telescope_customs');
keymap.set('n', '<Leader>wf', customs.find_wiki, { noremap = true })
keymap.set('n', '<Leader>wg', customs.grep_wiki, { noremap = true })
end
})
@ -436,7 +445,7 @@ require('lir').setup {
hide_cursor = true
}
map('n', '<C-n>', '<cmd>lua require("lir.float").toggle()<cr>', { noremap = true })
keymap.set('n', '<C-n>', require("lir.float").toggle, { noremap = true })
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
@ -456,9 +465,9 @@ require('colorizer').setup({
})
-- Leap
vim.keymap.set({ 'n', 'x', 'o' }, 'ö', '<Plug>(leap-forward)')
vim.keymap.set({ 'n', 'x', 'o' }, 'Ö', '<Plug>(leap-backward)')
vim.keymap.set({ 'n', 'x', 'o' }, '', '<Plug>(leap-from-window)')
keymap.set({ 'n', 'x', 'o' }, 'ö', '<Plug>(leap-forward)')
keymap.set({ 'n', 'x', 'o' }, 'Ö', '<Plug>(leap-backward)')
keymap.set({ 'n', 'x', 'o' }, '', '<Plug>(leap-from-window)')
-- Debugger Adapter Protocol
local dap = require('dap')
@ -485,19 +494,20 @@ dap.configurations.rust = {
},
}
map('n', '<Leader>dc', '<cmd>lua require"dap".continue()<cr>', { noremap = true })
map('n', '<Leader>db', '<cmd>lua require"dap".toggle_breakpoint()<cr>', { noremap = true })
map('n', '<Leader>do', '<cmd>lua require"dap".step_over()<cr>', { noremap = true })
map('n', '<Leader>di', '<cmd>lua require"dap".step_into()<cr>', { noremap = true })
keymap.set('n', '<Leader>dc', dap.continue, { noremap = true })
keymap.set('n', '<Leader>db', dap.toggle_breakpoint, { noremap = true })
keymap.set('n', '<Leader>do', dap.step_over, { noremap = true })
keymap.set('n', '<Leader>di', dap.step_into, { noremap = true })
require("dapui").setup()
map('n', '<Leader>dd', '<cmd>lua require"dapui".toggle()<cr>', { noremap = true })
local dapui = require("dapui")
dapui.setup()
keymap.set('n', '<Leader>dd', dapui.toggle, { noremap = true })
-- registers preview
require("registers").setup()
-- Lazygit
map('n', '<Leader>g', '<cmd>LazyGit<cr>', { noremap = true })
keymap.set('n', '<Leader>g', '<cmd>LazyGit<cr>', { noremap = true })
-- Session
require("auto-session").setup {
@ -507,8 +517,12 @@ require("auto-session").setup {
opt.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,terminal,localoptions"
-- Substitute
require("substitute").setup()
vim.keymap.set('n', 's', require('substitute').operator, { noremap = true })
vim.keymap.set('n', 'ss', require('substitute').line, { noremap = true })
vim.keymap.set('n', 'S', require('substitute').eol, { noremap = true })
vim.keymap.set('x', 's', require('substitute').visual, { noremap = true })
local substitute = require("substitute")
substitute.setup()
keymap.set('n', 's', substitute.operator, { noremap = true })
keymap.set('n', 'ss', substitute.line, { noremap = true })
keymap.set('n', 'S', substitute.eol, { noremap = true })
keymap.set('x', 's', substitute.visual, { noremap = true })
-- Fidget notifications
require('fidget').setup()