Home Explore Blog CI



neovim

10th chunk of `runtime/doc/autocmd.txt`
2354aac08b4fcdfd614202e491b5351dcadd9e588b4316d40000000100000fa0
 'shelltemp' is off.
							*FilterWritePost*
FilterWritePost			After writing a file for a filter command or
				making a diff with an external diff (see
				|DiffUpdated| for internal diff).
				Vim checks the pattern against the name of
				the current buffer as with FilterWritePre.
				Not triggered when 'shelltemp' is off.
							*FilterWritePre*
FilterWritePre			Before writing a file for a filter command or
				making a diff with an external diff.
				Vim checks the pattern against the name of
				the current buffer, not the name of the
				temporary file that is the output of the
				filter command.
				Not triggered when 'shelltemp' is off.
							*FocusGained*
FocusGained			Nvim got focus.
							*FocusLost*
FocusLost			Nvim lost focus.  Also (potentially) when
				a GUI dialog pops up.
							*FuncUndefined*
FuncUndefined			When a user function is used but it isn't
				defined.  Useful for defining a function only
				when it's used.  The pattern is matched
				against the function name.  Both <amatch> and
				<afile> are set to the name of the function.
				This is triggered even when inside an
				autocommand defined without |autocmd-nested|.
				NOTE: When writing Vim scripts a better
				alternative is to use an autoloaded function.
				See |autoload-functions|.
							*UIEnter*
UIEnter				After a UI connects via |nvim_ui_attach()|, or
				after builtin TUI is started, after |VimEnter|.
				Sets these |v:event| keys:
				    chan: |channel-id| of the UI
							*UILeave*
UILeave				After a UI disconnects from Nvim, or after
				builtin TUI is stopped, after |VimLeave|.
				Sets these |v:event| keys:
				    chan: |channel-id| of the UI
							*InsertChange*
InsertChange			When typing <Insert> while in Insert or
				Replace mode.  The |v:insertmode| variable
				indicates the new mode.
				Be careful not to move the cursor or do
				anything else that the user does not expect.
							*InsertCharPre*
InsertCharPre			When a character is typed in Insert mode,
				before inserting the char.
				The |v:char| variable indicates the char typed
				and can be changed during the event to insert
				a different character.  When |v:char| is set
				to more than one character this text is
				inserted literally.

				Cannot change the text. |textlock|
							*InsertEnter*
InsertEnter			Just before starting Insert mode.  Also for
				Replace mode and Virtual Replace mode.  The
				|v:insertmode| variable indicates the mode.
				Be careful not to do anything else that the
				user does not expect.
				The cursor is restored afterwards.  If you do
				not want that set |v:char| to a non-empty
				string.
							*InsertLeavePre*
InsertLeavePre			Just before leaving Insert mode.  Also when
				using CTRL-O |i_CTRL-O|.  Be careful not to
				change mode or use `:normal`, it will likely
				cause trouble.
							*InsertLeave*
InsertLeave			Just after leaving Insert mode.  Also when
				using CTRL-O |i_CTRL-O|.  But not for |i_CTRL-C|.
LspAttach			See |LspAttach|
LspDetach			See |LspDetach|
LspNotify			See |LspNotify|
LspProgress			See |LspProgress|
LspRequest			See |LspRequest|
LspTokenUpdate			See |LspTokenUpdate|
							*MenuPopup*
MenuPopup			Just before showing the popup menu (under the
				right mouse button).  Useful for adjusting the
				menu for what is under the cursor or mouse
				pointer.
				The pattern is matched against one or two
				characters representing the mode:
					n	Normal
					v	Visual
					o	Operator-pending
					i	Insert
					c	Command line
					tl	Terminal
							*ModeChanged*
ModeChanged			After changing the mode. The pattern is
				matched against `'old_mode:new_mode'`, for
				example match against `*:c` to simulate
				|CmdlineEnter|.
				The following values of |v:event| are set:
					old_mode The mode before it changed.
					new_mode The new mode as also returned
						by |mode()| called with a
						non-zero argument.
				When ModeChanged is triggered, old_mode will
				have the value of new_mode when

Title: Nvim Autocommand Events: Focus, UI, Insert Mode, LSP, and Mode Changes
Summary
This section continues detailing Nvim autocommand events, covering focus management (FocusGained, FocusLost), undefined function usage (FuncUndefined), UI connection and disconnection (UIEnter, UILeave), Insert mode behavior (InsertChange, InsertCharPre, InsertEnter, InsertLeavePre, InsertLeave), Language Server Protocol (LSP) events (LspAttach, LspDetach, LspNotify, LspProgress, LspRequest, LspTokenUpdate), menu popups (MenuPopup), and mode changes (ModeChanged). It includes notes about avoiding unexpected behavior during certain events and the matching patterns used for ModeChanged and MenuPopup.