Contents

Vim provides the function input() that can display a prompt for the user, then wait for the user to type some input. To avoid problems with Vim's typeahead mechanism (which includes the processing of mappings), you need to first call inputsave(), then call input(), then inputrestore().

Often it is better to write a Vim command, so you can simply type the desired command and arguments when wanted (you don't need to be prompted for input). However, it is sometimes useful for a script to prompt the user to enter a required parameter.

If your are asking the user to confirm a choice, use instead the command

confirm(text[,choices[,default[,type]]])

(Note: confirm() is only supported when compiled with dialog support). For more details see the help reference.

Use Vim to edit any file, then enter the following to source (execute) the above script:

:so vimdemo.vim

That defines function Demo() which you can call with:

:call Demo()

The function gets the current line to a variable, prompts the user to enter a name, then appends the entered name to the current line. This is only a simple demonstration, and is not intended to do anything useful.