vim.opt.list = true vim.opt.listchars = { tab = '⇝·', trail = '·', nbsp = '␣' } -- disable list mode when inserting stuff, otherwise keep it enabled, it's -- useful (see also setting lcs) listinsert = vim.api.nvim_create_augroup('listinsert', { clear = true }) vim.api.nvim_create_autocmd('InsertEnter', { desc = 'Disable list mode when starting to insert', group = listinsert, callback = function() vim.opt.list = false end }) vim.api.nvim_create_autocmd('InsertLeave', { desc = 'Enable list mode when leaving insert mode', group = listinsert, callback = function() vim.opt.list = true end }) -- flag trailing spaces as error only when not inserting tsperrorinsert = vim.api.nvim_create_augroup('tsperrorinsert', { clear = true }) vim.api.nvim_create_autocmd('InsertEnter', { desc = 'Disable highlighting trailing spaces in insert mode', group = tsperrorinsert, callback = function() vim.cmd([[match none /\s\+$/]]) end }) vim.api.nvim_create_autocmd('InsertLeave', { desc = 'Enable highlighting trailing spaces outside of insert mode', group = tsperrorinsert, callback = function() vim.cmd([[match Error /\s\+$/]]) end })