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 fn = vim.fn
local opt = vim.opt 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 autocmd = vim.api.nvim_create_autocmd
local keymap = vim.keymap
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' 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 '~/projekte/zenburn.nvim' -- zenburn coloursheme
use 'rmagatti/auto-session' -- session management use 'rmagatti/auto-session' -- session management
use 'gbprod/substitute.nvim' -- substitue objects with yanked register without copying into register use 'gbprod/substitute.nvim' -- substitue objects with yanked register without copying into register
use 'j-hui/fidget.nvim' -- notifications
end) end)
local builtin = require('telescope.builtin')
-- General Editor Settings -- General Editor Settings
require("zenburn").setup() require("zenburn").setup()
@ -66,30 +67,38 @@ opt.statusline = ' %f %r %m%=%y %{&fileencoding?&fileencoding:&encoding}[%{&file
opt.completeopt = 'menuone,noinsert,noselect' opt.completeopt = 'menuone,noinsert,noselect'
map('n', '<Space>w', '<cmd>w<cr>', { noremap = true }) keymap.set('n', '<Space>w', '<cmd>w<cr>', { noremap = true })
map('n', '<Space>q', '<cmd>wq<cr>', { noremap = true }) keymap.set('n', '<Space>q', '<cmd>wq<cr>', { noremap = true })
map('n', '<Space>Q', '<cmd>wqa<cr>', { noremap = true }) keymap.set('n', '<Space>Q', '<cmd>wqa<cr>', { noremap = true })
map('n', '<Space>/', '<cmd>let @/ = ""<cr>', { noremap = true }) keymap.set('n', '<Space>/', '<cmd>let @/ = ""<cr>', { noremap = true })
-- fix interpreting C-I as Tab -- fix interpreting C-I as Tab
map('n', '<C-I>', '<C-I>', { noremap = true }) keymap.set('n', '<C-I>', '<C-I>', { noremap = true })
-- Splits -- Splits
map('n', '<C-h>', '<C-w>h', { noremap = true }) keymap.set('n', '<C-h>', '<C-w>h', { noremap = true })
map('n', '<C-j>', '<C-w>j', { noremap = true }) keymap.set('n', '<C-j>', '<C-w>j', { noremap = true })
map('n', '<C-k>', '<C-w>k', { noremap = true }) keymap.set('n', '<C-k>', '<C-w>k', { noremap = true })
map('n', '<C-l>', '<C-w>l', { noremap = true }) keymap.set('n', '<C-l>', '<C-w>l', { noremap = true })
opt.splitbelow = true opt.splitbelow = true
opt.splitright = 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 -- Autocommands
autocmd({ 'BufNewFile', 'BufRead' }, { autocmd({ 'BufNewFile', 'BufRead' }, {
desc = 'When editing compileable documents, register commands for live preview', desc = 'When editing compileable documents, register commands for live preview',
pattern = { '*.md', '*.tex', '*.puml' }, pattern = { '*.md', '*.tex', '*.puml' },
callback = function() callback = function()
buf_map(0, 'n', '<leader>p', '<cmd>lua require("compileDoc").open_document_preview()<CR>', { noremap = true }) local compileDoc = require('compileDoc')
buf_map(0, 'n', '<leader>P', '<cmd>lua require("compileDoc").close_document_preview()<CR>', { noremap = true }) 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 end
}) })
@ -107,12 +116,7 @@ autocmd("FileType", {
}, },
callback = function(event) callback = function(event)
vim.bo[event.buf].buflisted = false vim.bo[event.buf].buflisted = false
buf_map(event.buf, keymap.set('n', 'q', '<cmd>close<cr>', { silent = true, noremap = true, buffer = event.buf })
'n',
'q',
'<cmd>close<cr>',
{ silent = true, noremap = true }
)
end, end,
}) })
@ -125,53 +129,24 @@ autocmd({ "VimResized" }, {
end, 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 -- LSP
local lsp = require('lspconfig') local lsp = require('lspconfig')
local on_attach = function(client, bufnr) local on_attach = function(_, bufnr)
-- Mappings. -- Mappings.
local opts = { noremap = true, silent = true, buffer = bufnr } local opts = { noremap = true, silent = true, buffer = bufnr }
-- See `:help vim.lsp.*` for documentation on any of the below functions keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts) keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
vim.keymap.set('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) keymap.set('n', 'gr', vim.lsp.buf.references, opts)
vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) keymap.set('n', 'K', vim.lsp.buf.hover, opts)
vim.keymap.set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts) keymap.set('n', 'gk', vim.lsp.buf.signature_help, opts)
vim.keymap.set('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) keymap.set('n', '<space>a', vim.lsp.buf.code_action, opts)
vim.keymap.set('n', '<leader>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts) keymap.set('v', '<leader>a', vim.lsp.buf.code_action, opts)
vim.keymap.set({'n', 'v'}, '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
vim.keymap.set('n', '<leader>cf', function() vim.lsp.buf.format { async = true } end, 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 -- Signature
require('lsp_signature').on_attach({ require('lsp_signature').on_attach({
@ -345,10 +320,41 @@ require('nvim-ts-autotag').setup({
require 'nvim-autopairs'.setup {} require 'nvim-autopairs'.setup {}
-- Telescope -- Telescope
map('n', '<Leader>ff', '<cmd>lua require("telescope.builtin").find_files()<cr>', { noremap = true }) keymap.set('n', '<leader>ff', builtin.find_files, { noremap = true })
map('n', '<leader>fg', '<cmd>lua require("telescope.builtin").live_grep()<cr>', { noremap = true }) keymap.set('n', '<leader>fg', builtin.live_grep, { noremap = true })
map('n', '<leader>fb', '<cmd>lua require("telescope.builtin").buffers()<cr>', { noremap = true }) keymap.set('n', '<leader>fb', builtin.buffers, { noremap = true })
map('n', '<leader>fh', '<cmd>lua require("telescope.builtin").help_tags()<cr>', { 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 -- Vimwiki
require('mkdnflow').setup({ 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 date_string = os.date("%Y-%m-%d")
local path = '/home/max/dokumente/wiki/todos/' .. date_string .. '.md' 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) vim.api.nvim_put({ "# Todo - " .. date_string, "- [ ] " }, 'c', false, true)
end end
vim.cmd.write() vim.cmd.write()
end, { noremap = true }) end
keymap.set('n', '<leader>wd', create_todo_for_today, { noremap = true })
autocmd({ 'BufRead', 'BufNewFile' }, { autocmd({ 'BufRead', 'BufNewFile' }, {
@ -393,8 +401,9 @@ autocmd({ 'BufRead', 'BufNewFile' }, {
callback = function() callback = function()
vim.cmd('set awa') vim.cmd('set awa')
vim.wo.conceallevel = 2 vim.wo.conceallevel = 2
map('n', '<Leader>wf', '<cmd>lua require("telescope_customs").find_wiki()<cr>', { noremap = true }) local customs = require('telescope_customs');
map('n', '<Leader>wg', '<cmd>lua require("telescope_customs").grep_wiki()<cr>', { noremap = true }) keymap.set('n', '<Leader>wf', customs.find_wiki, { noremap = true })
keymap.set('n', '<Leader>wg', customs.grep_wiki, { noremap = true })
end end
}) })
@ -436,7 +445,7 @@ require('lir').setup {
hide_cursor = true 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_netrw = 1
vim.g.loaded_netrwPlugin = 1 vim.g.loaded_netrwPlugin = 1
@ -456,9 +465,9 @@ require('colorizer').setup({
}) })
-- Leap -- Leap
vim.keymap.set({ 'n', 'x', 'o' }, 'ö', '<Plug>(leap-forward)') keymap.set({ 'n', 'x', 'o' }, 'ö', '<Plug>(leap-forward)')
vim.keymap.set({ 'n', 'x', 'o' }, 'Ö', '<Plug>(leap-backward)') 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-from-window)')
-- Debugger Adapter Protocol -- Debugger Adapter Protocol
local dap = require('dap') local dap = require('dap')
@ -485,19 +494,20 @@ dap.configurations.rust = {
}, },
} }
map('n', '<Leader>dc', '<cmd>lua require"dap".continue()<cr>', { noremap = true }) keymap.set('n', '<Leader>dc', dap.continue, { noremap = true })
map('n', '<Leader>db', '<cmd>lua require"dap".toggle_breakpoint()<cr>', { noremap = true }) keymap.set('n', '<Leader>db', dap.toggle_breakpoint, { noremap = true })
map('n', '<Leader>do', '<cmd>lua require"dap".step_over()<cr>', { noremap = true }) keymap.set('n', '<Leader>do', dap.step_over, { noremap = true })
map('n', '<Leader>di', '<cmd>lua require"dap".step_into()<cr>', { noremap = true }) keymap.set('n', '<Leader>di', dap.step_into, { noremap = true })
require("dapui").setup() local dapui = require("dapui")
map('n', '<Leader>dd', '<cmd>lua require"dapui".toggle()<cr>', { noremap = true }) dapui.setup()
keymap.set('n', '<Leader>dd', dapui.toggle, { noremap = true })
-- registers preview -- registers preview
require("registers").setup() require("registers").setup()
-- Lazygit -- Lazygit
map('n', '<Leader>g', '<cmd>LazyGit<cr>', { noremap = true }) keymap.set('n', '<Leader>g', '<cmd>LazyGit<cr>', { noremap = true })
-- Session -- Session
require("auto-session").setup { require("auto-session").setup {
@ -507,8 +517,12 @@ require("auto-session").setup {
opt.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,terminal,localoptions" opt.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,terminal,localoptions"
-- Substitute -- Substitute
require("substitute").setup() local substitute = require("substitute")
vim.keymap.set('n', 's', require('substitute').operator, { noremap = true }) substitute.setup()
vim.keymap.set('n', 'ss', require('substitute').line, { noremap = true }) keymap.set('n', 's', substitute.operator, { noremap = true })
vim.keymap.set('n', 'S', require('substitute').eol, { noremap = true }) keymap.set('n', 'ss', substitute.line, { noremap = true })
vim.keymap.set('x', 's', require('substitute').visual, { noremap = true }) keymap.set('n', 'S', substitute.eol, { noremap = true })
keymap.set('x', 's', substitute.visual, { noremap = true })
-- Fidget notifications
require('fidget').setup()