Home Explore Blog CI



neovim

64th chunk of `runtime/doc/vimfn.txt`
be35f3959690ceb85f325129bba391348c3a2bf206428ca00000000100000fa9
 new
		displayed input string, before command-line is redrawn.  It is
		expected that function is pure for the duration of one input()
		call, i.e. it produces the same output for the same input, so
		output may be memoized.  Function is run like under |:silent|
		modifier. If the function causes any errors, it will be
		skipped for the duration of the current input() call.

		Highlighting is disabled if command-line contains arabic
		characters.

		NOTE: This function must not be used in a startup file, for
		the versions that only run in GUI mode (e.g., the Win32 GUI).
		Note: When input() is called from within a mapping it will
		consume remaining characters from that mapping, because a
		mapping is handled like the characters were typed.
		Use |inputsave()| before input() and |inputrestore()|
		after input() to avoid that.  Another solution is to avoid
		that further characters follow in the mapping, e.g., by using
		|:execute| or |:normal|.

		Example with a mapping: >vim
			nmap \x :call GetFoo()<CR>:exe "/" .. Foo<CR>
			function GetFoo()
			  call inputsave()
			  let g:Foo = input("enter search pattern: ")
			  call inputrestore()
			endfunction
<

                Parameters: ~
                  • {opts} (`table`)

                Return: ~
                  (`string`)

inputlist({textlist})                                              *inputlist()*
		{textlist} must be a |List| of strings.  This |List| is
		displayed, one string per line.  The user will be prompted to
		enter a number, which is returned.
		The user can also select an item by clicking on it with the
		mouse, if the mouse is enabled in the command line ('mouse' is
		"a" or includes "c").  For the first string 0 is returned.
		When clicking above the first item a negative number is
		returned.  When clicking on the prompt one more than the
		length of {textlist} is returned.
		Make sure {textlist} has less than 'lines' entries, otherwise
		it won't work.  It's a good idea to put the entry number at
		the start of the string.  And put a prompt in the first item.
		Example: >vim
			let color = inputlist(['Select color:', '1. red',
				\ '2. green', '3. blue'])

                Parameters: ~
                  • {textlist} (`string[]`)

                Return: ~
                  (`any`)

inputrestore()                                                  *inputrestore()*
		Restore typeahead that was saved with a previous |inputsave()|.
		Should be called the same number of times inputsave() is
		called.  Calling it more often is harmless though.
		Returns TRUE when there is nothing to restore, FALSE otherwise.

                Return: ~
                  (`integer`)

inputsave()                                                        *inputsave()*
		Preserve typeahead (also from mappings) and clear it, so that
		a following prompt gets input from the user.  Should be
		followed by a matching inputrestore() after the prompt.  Can
		be used several times, in which case there must be just as
		many inputrestore() calls.
		Returns TRUE when out of memory, FALSE otherwise.

                Return: ~
                  (`integer`)

inputsecret({prompt} [, {text}])                                 *inputsecret()*
		This function acts much like the |input()| function with but
		two exceptions:
		a) the user's response will be displayed as a sequence of
		asterisks ("*") thereby keeping the entry secret, and
		b) the user's response will not be recorded on the input
		|history| stack.
		The result is a String, which is whatever the user actually
		typed on the command-line in response to the issued prompt.
		NOTE: Command-line completion is not supported.

                Parameters: ~
                  • {prompt} (`string`)
                  • {text} (`string?`)

                Return: ~
                  (`string`)

insert({object}, {item} [, {idx}])                                    *insert()*
		When {object} is a |List| or a |Blob| insert {item} at the start
		of it.

Title: input() Highlighting Details, inputlist(), inputrestore(), inputsave(), inputsecret() functions
Summary
This section continues the discussion of the `input()` function, focusing on the highlighting functionality and its limitations. It also describes the functions `inputlist()`, which displays a list of strings and prompts the user to select a number; `inputrestore()` and `inputsave()`, which manage typeahead input when using mappings with `input()`; and `inputsecret()`, which takes input without displaying it or saving it to history.