Exposed Autocommands
AstroNvim has many internally built features to help ease both user experience
and configuration. Some of these features work asynchronously, so we provide a
few User
autocommand events that can be accessed by the user. All of the
autocommand events that we provide are in the User
autocommand space and the
patterns begin with Astro
. Here is a complete list of all of the events that
we provide as well as descriptions on when they happen. For a list of the core
Neovim autocmd events, check the help page with :h autocmd-events
.
-
AstroBufsUpdated
: AstroNvim uses a vim-tab local variable for managing buffers displayed in our customtabline
. This is stored invim.t.bufs
.AstroBufsUpdated
is triggered every time we update thisvim.t.bufs
variable internally. -
AstroColorScheme
: Thehighlights
configuration option in the user configuration provides an easy to use API for customizing highlight groups for all themes or specific themes even if the theme plugins do not provide good configuration APIs.AstroColorScheme
is triggered after we finish applying these custom highlights when a new colorscheme is applied. -
AstroFile
: AstroNvim uses this autocmd event for lazy loading plugins on the first real file opened for editing. This can also be used by the user. This event fires every time a file is opened with a non-empty filename. -
AstroGitFile
: AstroNvim uses this autocmd event for lazy loading git related plugins. This event fires every time a file is opened that is in a git tracked directory. -
AstroLspSetup
: AstroNvim has a lot of internal tooling surrounding setting up handlers for the internal LSP mechanisms.AstroLspSetup
is triggered when we have finished setting up these handlers and configuringlspconfig
. -
AstroMasonUpdateCompleted
: AstroNvim provides a custom command for easily updating all packages that are currently installed with Mason using:MasonUpdateAll
.AstroMasonUpdateCompleted
is triggered after all of the available updates have been applied. -
AstroUpdateComplete
: This is triggered once the AstroNvim updater has completed the update process. This could be useful for automatically quitting the editor after an update to quickly relaunch.
Example Autocommand Usage
Just to demonstrate the usage of User
autocommand events in Neovim here is an
example autocmd
that disables the tabline
if there is only a single buffer
and a single tab available. The following can be placed in the polish
function in a user configuration:
-- create an augroup to easily manage autocommandsvim.api.nvim_create_augroup("autohidetabline", { clear = true })-- create a new autocmd on the "User" eventvim.api.nvim_create_autocmd("User", { desc = "Hide tabline when only one buffer and one tab", -- nice description -- triggered when vim.t.bufs is updated pattern = "AstroBufsUpdated", -- the pattern is the name of our User autocommand events group = "autohidetabline", -- add the autocmd to the newly created augroup callback = function() -- if there is more than one buffer in the tab, show the tabline -- if there are 0 or 1 buffers in the tab, only show the tabline if there is more than one vim tab local new_showtabline = #vim.t.bufs > 1 and 2 or 1 -- check if the new value is the same as the current value if new_showtabline ~= vim.opt.showtabline:get() then -- if it is different, then set the new `showtabline` value vim.opt.showtabline = new_showtabline end end,})