vim.cmd("set tabstop=4") vim.cmd("set shiftwidth=4") vim.wo.relativenumber = true vim.opt.number = true vim.g.mapleader = " " -- Enable line wrapping vim.opt.wrap = true vim.opt.linebreak = true vim.opt.showbreak = "↪ " -- Make 'j' and 'k' navigate visual lines (not logical lines) vim.keymap.set("n", "j", "gj", { noremap = true, silent = true }) vim.keymap.set("n", "k", "gk", { noremap = true, silent = true }) vim.keymap.set("v", "j", "gj", { noremap = true, silent = true }) vim.keymap.set("v", "k", "gk", { noremap = true, silent = true }) -- -- Spellchecker -- vim.api.nvim_create_autocmd("FileType", { -- callback = function() -- local buftype = vim.api.nvim_buf_get_option(0, "buftype") -- local filetype = vim.api.nvim_buf_get_option(0, "filetype") -- -- local skip_buftypes = { "nofile", "prompt", "terminal" } -- local skip_filetypes = { "cmp_menu", "cmp_doc", "TelescopePrompt", "NvimTree" } -- -- -- If current buffer is in skip list, do nothing -- for _, bt in ipairs(skip_buftypes) do -- if buftype == bt then -- return -- end -- end -- for _, ft in ipairs(skip_filetypes) do -- if filetype == ft then -- return -- end -- end -- -- -- Else, enable spellcheck -- vim.opt_local.spell = true -- vim.opt_local.spelllang = "en" -- end, -- }) -- Toggle spell check with sc vim.keymap.set("n", "sc", function() vim.wo.spell = not vim.wo.spell print("Spell checking: " .. (vim.wo.spell and "ON" or "OFF")) end, { desc = "Toggle spell checking" }) -- Switch between English and German with sl vim.keymap.set("n", "sl", function() local current = vim.opt.spelllang:get()[1] or "" local new_lang = current == "en" and "de" or "en" vim.opt.spelllang = new_lang print("Spell language: " .. new_lang) end, { desc = "Switch spell language" }) -- Clear search highlights when entering insert mode. vim.api.nvim_create_autocmd("InsertEnter", { callback = function() -- Delay the nohlsearch slightly to ensure it takes effect vim.defer_fn(function() vim.cmd("nohlsearch") end, 10) end, })