Home Explore Blog CI



neovim

7th chunk of `runtime/doc/autocmd.txt`
01d7cd529ab0aa1fb3d4d755fcbc9dfae7d498c6c73186070000000100000fa0
 |complete-items|.
				    height		nr of items visible
				    width		screen cells
				    row			top screen row
				    col			leftmost screen column
				    size		total nr of items
				    scrollbar		TRUE if visible

				Non-recursive (event cannot trigger itself).
				Cannot change the text. |textlock|

				The size and position of the popup are also
				available by calling |pum_getpos()|.

							*CompleteDonePre*
CompleteDonePre			After Insert mode completion is done.  Either
				when something was completed or discarded.
				|ins-completion|
				|complete_info()| is valid during this event.
				|v:completed_item| gives the completed item.

							*CompleteDone*
CompleteDone			After Insert mode completion is done.  Either
				when something was completed or discarded.
				|ins-completion|
				|complete_info()| is cleared before this; use
				CompleteDonePre if you need it.
				|v:completed_item| gives the completed item,
				or empty dict if completion was discarded.

				Sets these |v:event| keys:
				    complete_word	The word that was
							selected, empty if
							completion was
							abandoned (discarded).
				    complete_type	|complete_info_mode|
				    reason	Reason for completion being
						done. Can be one of:
						- "accept": completion was
						  accepted by |complete_CTRL-Y|.
						- "cancel": completion was
						  stopped by |complete_CTRL-E|.
						- "discard": completion was
						  abandoned for other reason.

							*CursorHold*
CursorHold			When the user doesn't press a key for the time
				specified with 'updatetime'.  Not triggered
				until the user has pressed a key (i.e. doesn't
				fire every 'updatetime' ms if you leave Vim to
				make some coffee. :)  See |CursorHold-example|
				for previewing tags.
				This event is only triggered in Normal mode.
				It is not triggered when waiting for a command
				argument to be typed, or a movement after an
				operator.
				While recording the CursorHold event is not
				triggered. |q|
							*<CursorHold>*
				Internally the autocommand is triggered by the
				<CursorHold> key. In an expression mapping
				|getchar()| may see this character.

				Note: Interactive commands cannot be used for
				this event.  There is no hit-enter prompt,
				the screen is updated directly (when needed).
				Note: In the future there will probably be
				another option to set the time.
				Hint: to force an update of the status lines
				use: >
					:let &ro = &ro
<
							*CursorHoldI*
CursorHoldI			Like CursorHold, but in Insert mode. Not
				triggered when waiting for another key, e.g.
				after CTRL-V, and not in CTRL-X mode
				|insert_expand|.

							*CursorMoved*
CursorMoved			After the cursor was moved in Normal or Visual
				mode or to another window.  Also when the text
				of the cursor line has been changed, e.g. with
				"x", "rx" or "p".
				Not always triggered when there is typeahead,
				while executing commands in a script file, or
				when an operator is pending.
				For an example see |match-parens|.
				Note: Cannot be skipped with |:noautocmd|.
				Careful: This is triggered very often, don't
				do anything that the user does not expect or
				that is slow.
							*CursorMovedC*
CursorMovedC			After the cursor was moved in the command
				line.  Be careful not to mess up the command
				line, it may cause Vim to lock up.
				<afile> expands to the |cmdline-char|.
							*CursorMovedI*
CursorMovedI			After the cursor was moved in Insert mode.
				Not triggered when the popup menu is visible.
				Otherwise the same as CursorMoved.
							*DiffUpdated*
DiffUpdated			After diffs have been updated.  Depending on
				what kind of diff is being used (internal or
				external) this can be triggered on every
				change or when doing |:diffupdate|.
							*DirChanged*
DirChanged			After the |current-directory| was changed.
				The pattern can be:
					"window"  to trigger on `:lcd`
					"tabpage" to trigger on `:tcd`
					"global"  to trigger on `:cd`

Title: Nvim Autocommand Events: Completion, Cursor Movement, and Directory Changes
Summary
This section describes Nvim autocommand events related to insert mode completion, cursor movement, and directory changes. It details the variables available for CompleteDone events, as well as the triggers and considerations for using CursorHold, CursorHoldI, CursorMoved, CursorMovedC, CursorMovedI, DiffUpdated, and DirChanged events.