nvim/config/lua/autocmd.lua
2023-01-03 22:05:09 -05:00

66 lines
2.1 KiB
Lua

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 <buffer><silent> q :close<CR>]] }
)
api.nvim_create_autocmd("FileType", { pattern = "man", command = [[nnoremap <buffer><silent> q :quit<CR>]] })
-- 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