.dotfiles/.config/nvim/lua/autocmd.lua
2025-06-14 01:49:13 +03:00

55 lines
1.6 KiB
Lua

-- [[ Basic Autocommands ]]
-- See `:help lua-guide-autocommands`
-- Highlight when yanking (copying) text
-- Try it with `yap` in normal mode
-- See `:help vim.highlight.on_yank()`
vim.api.nvim_create_autocmd("TextYankPost", {
desc = "Highlight when yanking (copying) text",
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
callback = function()
vim.hl.on_yank()
end,
})
-- vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
-- desc = "diagnostics on hold",
-- group = vim.api.nvim_create_augroup("diagnostics", { clear = true }),
-- callback = function()
-- vim.diagnostic.open_float(nil, { focus = false })
-- end,
-- })
-- TODO: check if it interferes with C-s shortcut
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
desc = "create parent folders automatically",
group = vim.api.nvim_create_augroup("create-parent-automatically", { clear = true }),
callback = function()
vim.cmd(":silent !mkdir -p %:p:h")
end,
})
vim.api.nvim_create_autocmd("BufReadPost", {
pattern = { "*" },
desc = "When editing a file, always jump to the last known cursor position",
group = vim.api.nvim_create_augroup("last-location", { clear = true }),
callback = function()
local line = vim.fn.line("'\"")
if
line >= 1
and line <= vim.fn.line("$")
and vim.bo.filetype ~= "commit"
and vim.fn.index({ "xxd", "gitrebase" }, vim.bo.filetype) == -1
then
vim.cmd('normal! g`"')
end
end,
})
vim.api.nvim_create_autocmd("VimEnter", {
desc = "Clear jump list when vim starts",
group = vim.api.nvim_create_augroup("clear-jumps", { clear = true }),
callback = function()
vim.cmd.clearjumps()
end,
})