-- ▜█▙ -- █▄ ▄█▄ -- ████▄ ▄████▄ -- ██▀█████▀▀███▄ -- ██ ▀█▀ ▀███▄ -- ▄▄▄██ █████████▄▀███▄▄▄▄ -- ▀███ ███ ███ ▀█████▀ -- █████████▀ ▄▄▄ -- ███▀██▄ ▀▀███ -- ███ ▀██▄▄ ▄███ -- ▀▀ ▀██████▀ -- ▜█▙ vim.g.mapleader = " " vim.g.maplocalleader = " " -- options local opt = vim.opt opt.relativenumber = true -- opt.number = true opt.autoread = true -- automatically reload modified files opt.wildmenu = true -- handle autocompletion menu opt.wrap = false opt.modelines = 5 opt.matchtime = 1 opt.tabstop = 2 opt.shiftwidth = 2 opt.autoindent = true opt.scrolloff = 7 opt.spell = true -- enable spellcheck opt.ignorecase = true -- ignore case while searching opt.smartcase = true -- ...unless mixed case is used in search terms opt.backspace = "indent,eol,start" -- allow backspace on indent, eol, or insert mode start position opt.cursorline = true opt.swapfile = false -- disable swap file -- highlight trailing white space vim.fn.matchadd('errorMsg', [[\s\+$]]) -- use system clipboard as default register opt.clipboard:append("unnamedplus") -- utility functions for key mappings function ToggleLineNumbering() vim.o.number = not vim.o.number vim.o.relativenumber = vim.o.number end -- keymappings local keymap = vim.keymap keymap.set('', '', ':bnext', {desc="Jump to next buffer"}) keymap.set('', '', ':bprev', {desc="Jump to previous buffer"}) keymap.set('', '', 'h', {desc="Focus window left"}) keymap.set('', '', 'j', {desc="Focus window down"}) keymap.set('', '', 'k', {desc="Focus window up"}) keymap.set('', '', 'l', {desc="Focus window right"}) keymap.set('v', '', ':sort', {desc="Sort selected lines alphanumerically"}) keymap.set('n', '', 'mzgg=G`z', {desc="Auto-format entire document"}) keymap.set('n', 'pu', ':Lazy update', {desc="Update plugins managed by Lazy"}) keymap.set('n', 'pi', ':Lazy install', {desc="Install missing plugins managed by Lazy"}) keymap.set('n', 'pc', ':Lazy clean', {desc="Clean plugins managed by Lazy"}) keymap.set('n', 'zn', ']s', {desc="Jump to next misspelling"}) keymap.set('n', 'zp', '[s', {desc="Jump to previous misspelling"}) keymap.set('n', 'zf', '1z=', {desc="Replace misspelling with firest suggested from dictionary"}) keymap.set('n', 'n', ':lua ToggleLineNumbering()', {desc="Toggle line numbering"}) keymap.set('n', 'w', ':w!', {desc="Quicksave"}) -- prefer ripgrep if available if vim.fn.executable('rg') == 1 then vim.o.grepprg = 'rg --vimgrep' end -- :W to save with sudo -- vim.api.nvim_create_user_command('') -- vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { -- group = vim.api.nvim_create_augroup("float_diagnostic_cursor", { clear = false }), -- callback = function () -- vim.diagnostic.open_float(nil, {focus=false, scope="cursor"}) -- end -- })