Home Explore Blog CI



neovim

44th chunk of `runtime/doc/vimeval.txt`
2b119518508e79b83cff2cbc86f0f6ce75f5bfd101ef61da0000000100000fa0
 This mostly applies to things that happen when Vim is
actually doing something else.  For example, a TextYankPost autocommand cannot
edit the text it is yanking.

This is not allowed when the textlock is active:
	- changing the buffer text
	- jumping to another buffer or window
	- editing another file
	- closing a window or quitting Vim
	- etc.

==============================================================================
Vim script library					*vim-script-library*

Vim comes bundled with a Vim script library, that can be used by runtime,
script authors.  Currently, it only includes very few functions, but it may
grow over time.

								*dist#vim*
The functions make use of the autoloaded prefix "dist#vim".

The following functions are available:

dist#vim#IsSafeExecutable(filetype, executable) ~

This function takes a filetype and an executable and checks whether it is safe
to execute the given executable.  For security reasons users may not want to
have Vim execute random executables or may have forbidden to do so for
specific filetypes by setting the "<filetype>_exec" variable (|plugin_exec|).

It returns |TRUE| or |FALSE| to indicate whether the plugin should run the given
executable.  It takes the following arguments:

	argument	type ~

	filetype	string
	executable	string

==============================================================================
Command-line expressions highlighting		*expr-highlight*

Expressions entered by the user in |i_CTRL-R_=|, |c_CTRL-\_e|, |quote=| are
highlighted by the built-in expressions parser.  It uses highlight groups
described in the table below, which may be overridden by colorschemes.
							*hl-NvimInvalid*
Besides the "Nvim"-prefixed highlight groups described below, there are
"NvimInvalid"-prefixed highlight groups which have the same meaning but
indicate that the token contains an error or that an error occurred just
before it.  They have mostly the same hierarchy, except that (by default) in
place of any non-Nvim-prefixed group NvimInvalid linking to `Error` is used
and some other intermediate groups are present.

Group                              Default link            Colored expression ~
*hl-NvimInternalError*               None, red/red           Parser bug

*hl-NvimAssignment*                  Operator                Generic assignment
*hl-NvimPlainAssignment*             NvimAssignment          `=` in |:let|
*hl-NvimAugmentedAssignment*         NvimAssignment          Generic, `+=`/`-=`/`.=`
*hl-NvimAssignmentWithAddition*      NvimAugmentedAssignment `+=` in |:let+=|
*hl-NvimAssignmentWithSubtraction*   NvimAugmentedAssignment `-=` in |:let-=|
*hl-NvimAssignmentWithConcatenation* NvimAugmentedAssignment `.=` in |:let.=|

*hl-NvimOperator*                    Operator                Generic operator

*hl-NvimUnaryOperator*               NvimOperator            Generic unary op
*hl-NvimUnaryPlus*                   NvimUnaryOperator       |expr-unary-+|
*hl-NvimUnaryMinus*                  NvimUnaryOperator       |expr-unary--|
*hl-NvimNot*                         NvimUnaryOperator       |expr-!|

*hl-NvimBinaryOperator*              NvimOperator            Generic binary op
*hl-NvimComparison*                  NvimBinaryOperator      Any |expr4| operator
*hl-NvimComparisonModifier*          NvimComparison          `#`/`?` near |expr4| op
*hl-NvimBinaryPlus*                  NvimBinaryOperator      |expr-+|
*hl-NvimBinaryMinus*                 NvimBinaryOperator      |expr--|
*hl-NvimConcat*                      NvimBinaryOperator      |expr-.|
*hl-NvimConcatOrSubscript*           NvimConcat              |expr-.| or |expr-entry|
*hl-NvimOr*                          NvimBinaryOperator      |expr-barbar|
*hl-NvimAnd*                         NvimBinaryOperator      |expr-&&|
*hl-NvimMultiplication*              NvimBinaryOperator      |expr-star|
*hl-NvimDivision*                    NvimBinaryOperator      |expr-/|
*hl-NvimMod*                         NvimBinaryOperator     

Title: Textlock, Vim Script Library, and Command-Line Expression Highlighting
Summary
This section discusses 'textlock', which prevents buffer text changes and window jumps during certain Vim operations. It then introduces the Vim script library, providing utility functions like `dist#vim#IsSafeExecutable()` for verifying executable safety based on filetype and user settings. Finally, it details how Vim highlights expressions entered in the command line using specific highlight groups (e.g., NvimOperator, NvimAssignment), allowing customization through colorschemes. It also introduces the 'NvimInvalid' highlight group for indicating errors in expressions.