-------------------------------------------- --- Commands --- -- Prevent typo vim.cmd [[ cnoreabbrev W (getcmdtype() is# ":" && getcmdline() is# "W") ? ("w") : ("W") cnoreabbrev Q (getcmdtype() is# ":" && getcmdline() is# "Q") ? ("q") : ("Q") cnoreabbrev WQ (getcmdtype() is# ":" && getcmdline() is# "WQ") ? ("wq") : ("WQ") cnoreabbrev Wq (getcmdtype() is# ":" && getcmdline() is# "Wq") ? ("wq") : ("Wq") ]] -------------------------------------------- --- Autocommands --- -- Cut off trailing whitespace and trailing blank lines local core = require("core.functions") vim.api.nvim_create_autocmd({ "BufWritePre" }, { pattern = "*", callback = core.trim_buffer, }) -- Highlight on yank -- See `:help vim.highlight.on_yank()` local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) vim.api.nvim_create_autocmd("TextYankPost", { pattern = "*", group = highlight_group, callback = function() vim.highlight.on_yank() end, }) -- Show message when autosaving local group = vim.api.nvim_create_augroup('autosave', {}) vim.api.nvim_create_autocmd('User', { pattern = 'AutoSaveWritePost', group = group, callback = function(opts) if opts.data.saved_buffer ~= nil then local filename = vim.api.nvim_buf_get_name(opts.data.saved_buffer) vim.notify("Wrote " .. filename, vim.log.levels.INFO) end end, })