50 lines
1.2 KiB
Lua
50 lines
1.2 KiB
Lua
local misc = require('core.misc')
|
|
local auto, augroup = misc.auto, misc.augroup
|
|
|
|
-- auto commands which interact with bufferes without modifying them
|
|
local bufcheck = augroup('bufcheck')
|
|
-- auto commands which modify things on the filesystem
|
|
local fsmod = augroup('fsmod')
|
|
|
|
auto('FocusGained', {
|
|
group = bufcheck,
|
|
desc = 'Update contents of file.',
|
|
command = 'checktime',
|
|
})
|
|
|
|
auto('TextYankPost', {
|
|
group = bufcheck,
|
|
desc = 'Highlight on yank.',
|
|
callback = function()
|
|
vim.highlight.on_yank { timeout = 250 }
|
|
end
|
|
})
|
|
|
|
auto('BufRead', {
|
|
group = bufcheck,
|
|
desc = 'Return to the last place the buffer was closed in.',
|
|
callback = function()
|
|
vim.cmd.call([[setpos(".", getpos("'\""))]])
|
|
end
|
|
})
|
|
|
|
auto('BufWritePre', {
|
|
group = fsmod,
|
|
desc = 'remove trailing spaces on file save',
|
|
callback = function()
|
|
local pos = vim.api.nvim_win_get_cursor(0)
|
|
vim.cmd([[%s/\s\+$//e]])
|
|
vim.api.nvim_win_set_cursor(0, pos)
|
|
end
|
|
})
|
|
|
|
auto('BufWritePre', {
|
|
group = fsmod,
|
|
desc = 'Basically mkdir -p.',
|
|
callback = function(ctx)
|
|
if ctx.match:match("^%w%w+://") then return end
|
|
local dir = vim.fn.fnamemodify(ctx.file, ':p:h')
|
|
vim.fn.mkdir(dir, 'p')
|
|
end
|
|
})
|