local augroup = vim.api.nvim_create_augroup local autocmd = vim.api.nvim_create_autocmd local c = augroup("c", { clear = true }) local latex = augroup("latex", { clear = true }) local mail = augroup("mail", { clear = true }) local misc = augroup("misc", { clear = true }) local troff = augroup("troff", { clear = true }) autocmd("InsertEnter", { command = 'norm zz', group = misc }) autocmd("BufWritePre", { command = "%s/\\s\\+$//e", group = misc }) autocmd("FileType", { command = "setlocal formatoptions-=cro", group = misc }) autocmd("FileType", { pattern = 'tex,plaintex', group = latex, callback = function() local opts = { noremap = true } vim.api.nvim_set_keymap('n', 's', ':w :!pdflatex %', opts) vim.api.nvim_set_keymap('n', 'S', ':w :!pdflatex %', opts) vim.api.nvim_set_keymap('n', 'p', ':!zathura %:r.pdf &', opts) end }) autocmd("FileType", { pattern = "c", command = ':setlocal cindent', group = c }) autocmd("BufEnter", { pattern = "neomutt-*", command = ':$read /home/mario/.local/share/signature.txt', group = mail }) autocmd("FileType", { pattern = "nroff", group = troff, callback = function() local opts = { noremap = true } vim.api.nvim_set_keymap('n', 's', ':w :!groff -e -ms % -T pdf > %:r.pdf', opts) vim.api.nvim_set_keymap('n', 'p', ':!zathura %:r.pdf & disown', opts) vim.api.nvim_set_keymap('i', 'ee', '\\[`e]', opts) vim.api.nvim_set_keymap('i', 'aa', '\\[`a]', opts) vim.api.nvim_set_keymap('i', 'ii', '\\[`i]', opts) vim.api.nvim_set_keymap('i', 'oo', '\\[`o]', opts) vim.api.nvim_set_keymap('i', 'uu', '\\[`u]', opts) end }) autocmd("FileType", { pattern = "xmath", group = troff, command = ':set filetype=nroff' }) autocmd({ "BufNew", "Filetype" }, { pattern = 'xmath', command = ':-1read ~/doc/pers/groff_template.ms' })