Vimscript: как я могу вызвать функцию, но ждать ввода пользователя, прежде чем ее выполнить?

803
ivan

В правой части сопоставления клавиш вы можете сделать что-то вроде :call FileTypeToggle("")<Left><Left>запуска функции в командной строке, переместить курсор между кавычками и подождать, пока пользователь заполнит аргумент и нажмете <CR>вручную.

Как вы можете сделать то же самое из функции? Я перепробовал кучу перестановок execute, call, normal, и ничто не похоже на работу. Я либо получаю ошибки о конце символов ( <Left><Left>), либо он выполняет функцию, не дожидаясь ввода пользователя.

1

1 ответ на вопрос

3
garyjohn

Use the input() function.

let cmd = input("", "call FileTypeToggle(\"\")\<left>\<left>") exe cmd 
Это не только ответило на мой вопрос, но и вдохновило меня на изменение функции. Спасибо! ivan 10 лет назад 0