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.