| 12345678910111213141516171819202122232425262728293031 | local function define_augroups(definitions) -- {{{1    -- Create autocommand groups based on the passed definitions    --    -- The key will be the name of the group, and each definition    -- within the group should have:    --    1. Trigger    --    2. Pattern    --    3. Text    -- just like how they would normally be defined from Vim itself    for group_name, definition in pairs(definitions) do        vim.cmd('augroup ' .. group_name)        vim.cmd('autocmd!')        for _, def in pairs(definition) do            local command = table.concat(vim.tbl_flatten {'autocmd', def}, ' ')            vim.cmd(command)        end        vim.cmd('augroup END')    endenddefine_augroups(    {_general_settings = {            {'TextYankPost', '*', 'lua require(\'vim.highlight\').on_yank({higroup = \'IncSearch\', timeout = 200})'},            {'BufWinEnter', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},            {'BufRead', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},            {'BufNewFile', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},        },    })
 |