--[[ Todo https://dev.to/voyeg3r/writing-useful-lua-functions-to-my-neovim-14ki function to remove whitespace and preserve spot on save ]]-- local o = vim.o local g = vim.g local cmd = vim.cmd local map = vim.api.nvim_set_keymap -- https://old.reddit.com/r/neovim/comments/lrz18i/how_to_change_colorscheme_in_lua_without_any/ g.colors_name = "nord" -- Set up spacebar as leader map('n', '', '', {}) vim.g.mapleader = ' ' -- Set spaces > tabs, 4 as default o.expandtab = true o.tabstop = 4 o.shiftwidth = 0 o.wrap = false o.history = 1000 -- Wildmode show list, complete to first result o.wildignore = "*/app/cache,*/vendor,*/env,*.pyc,*/venv,*/__pycache__,*/venv" o.splitright = true o.splitbelow = true o.spelllang = "en_ca" local highlights = { "Search ctermfg=166", "DiffAdd cterm=BOLD ctermfg=NONE ctermbg=22", "DiffDelete cterm=BOLD ctermfg=NONE ctermbg=52", "DiffChange cterm=BOLD ctermfg=NONE ctermbg=23", "DiffText cterm=BOLD ctermfg=NONE ctermbg=23", "Normal guibg=NONE ctermbg=NONE", "Search ctermbg=None ctermfg=166", "PrimaryBlock ctermfg=06 ctermbg=NONE", "SecondaryBlock ctermfg=06 ctermbg=NONE", "Blanks ctermfg=07 ctermbg=NONE", "ColorColumn ctermbg=cyan", } for i, highlight in ipairs(highlights) do cmd('au VimEnter * hi ' .. highlight) end -- Along with the highlight definition for ColorColumn above, these options -- will set colored marks at certain line lengths cmd([[au BufEnter *.py let w:m1=matchadd('ColorColumn', '\%81v', 100)]]) cmd([[au BufEnter *.py let w:m2=matchadd('Error', '\%121v', 100)]]) cmd([[au BufLeave *.py call clearmatches()"]]) options = { noremap = true } map('n', 'y', ':let @+=@0', options) map('n', '', ':noh', options) map('i', 'jj', '', options) map('n', 'gp', "`[v`]", options) -- Status Line local mode_map = { ['n'] = 'normal', ['no'] = 'n·operator pending', ['v'] = 'visual', ['V'] = 'v·line', [''] = 'v·block', ['s'] = 'select', ['S'] = 's·line', [''] = 's·block', ['i'] = 'insert', ['R'] = 'replace', ['Rv'] = 'v·replace', ['c'] = 'command', ['cv'] = 'vim ex', ['ce'] = 'ex', ['r'] = 'prompt', ['rm'] = 'more', ['r?'] = 'confirm', ['!'] = 'shell', ['t'] = 'terminal' } local function mode() local m = vim.api.nvim_get_mode().mode if mode_map[m] == nil then return m end return '[' .. mode_map[m] .. '] ' end local stl = { '%#PrimaryBlock#', mode(), '%#SecondaryBlock#', '%#Blanks#', '%f', '%m', '%=', '%#SecondaryBlock#', '%l,%c ', '%#PrimaryBlock#', '%{&filetype}', } o.statusline = table.concat(stl)