local api = vim.api local settings = require("user-conf") --- Remove all trailing whitespace on save --local TrimWhiteSpaceGrp = api.nvim_create_augroup("TrimWhiteSpaceGrp", { clear = true }) --api.nvim_create_autocmd("BufWritePre", { -- command = [[:%s/\s\+$//e]], -- group = TrimWhiteSpaceGrp, --}) -- don't auto comment new line api.nvim_create_autocmd("BufEnter", { command = [[set formatoptions-=cro]] }) -- Close nvim if NvimTree is only running buffer api.nvim_create_autocmd( "BufEnter", { command = [[if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif]] } ) -- Highlight on yank local yankGrp = api.nvim_create_augroup("YankHighlight", { clear = true }) api.nvim_create_autocmd("TextYankPost", { command = "silent! lua vim.highlight.on_yank()", group = yankGrp, }) -- go to last loc when opening a buffer api.nvim_create_autocmd( "BufReadPost", { command = [[if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif]] } ) -- windows to close with "q" api.nvim_create_autocmd( "FileType", { pattern = { "help", "startuptime", "qf", "lspinfo" }, command = [[nnoremap q :close]] } ) api.nvim_create_autocmd("FileType", { pattern = "man", command = [[nnoremap q :quit]] }) -- show cursor line only in active window local cursorGrp = api.nvim_create_augroup("CursorLine", { clear = true }) api.nvim_create_autocmd({ "InsertLeave", "WinEnter" }, { pattern = "*", command = "set cursorline", group = cursorGrp, }) api.nvim_create_autocmd( { "InsertEnter", "WinLeave" }, { pattern = "*", command = "set nocursorline", group = cursorGrp } ) -- Enable spell checking for certain file types api.nvim_create_autocmd( { "BufRead", "BufNewFile" }, { pattern = { "*.txt", "*.md", "*.tex" }, command = "setlocal spell" } ) if settings.packer_auto_sync then -- source plugins.lua and run PackerSync on save local sync_packer = function() vim.cmd("runtime lua/plugins.lua") require("packer").sync() end api.nvim_create_autocmd({ "BufWritePost" }, { pattern = { "plugins.lua" }, callback = sync_packer, }) end