nix/config/nvim/plugin/autocmds.lua
2026-02-10 18:59:47 -05:00

75 lines
1.6 KiB
Lua

local api, au = vim.api, vim.api.nvim_create_autocmd
local aug = api.nvim_create_augroup('AAugs', { clear = true })
au('BufEnter', {
command = 'setl formatoptions-=cro spelloptions=camel,noplainbuffer',
group = aug,
})
au({ 'TermOpen', 'BufWinEnter' }, {
callback = function(args)
if vim.bo[args.buf].buftype == 'terminal' then
vim.opt_local.number = true
vim.opt_local.relativenumber = true
vim.cmd.startinsert()
end
end,
group = aug,
})
au('BufWritePost', {
pattern = (
os.getenv('XDG_CONFIG_HOME') or (os.getenv('HOME') .. '/.config')
) .. '/dunst/dunstrc',
callback = function()
vim.fn.system('killall dunst && nohup dunst &; disown')
end,
group = aug,
})
au('BufReadPost', {
command = 'sil! normal g`"',
group = aug,
})
au({ 'BufRead', 'BufNewFile' }, {
pattern = '*/templates/*.html',
callback = function(opts)
vim.api.nvim_set_option_value(
'filetype',
'htmldjango',
{ buf = opts.buf }
)
end,
group = aug,
})
au('TextYankPost', {
callback = function()
vim.highlight.on_yank({ higroup = 'Visual', timeout = 300 })
end,
group = aug,
})
au({ 'FocusLost', 'BufLeave', 'VimLeave' }, {
pattern = '*',
callback = function()
vim.cmd('silent! wall')
end,
group = aug,
})
vim.api.nvim_create_autocmd('WinEnter', {
group = aug,
callback = function()
vim.wo.cursorline = true
end,
})
vim.api.nvim_create_autocmd('WinLeave', {
group = aug,
callback = function()
vim.wo.cursorline = false
end,
})