Vimscript: comment puis-je appeler une fonction mais attendre les entrées de l'utilisateur avant de l'exécuter?

1

Dans la partie droite d'un mappage de touches, vous pouvez, par exemple, :call FileTypeToggle("")<Left><Left>lancer un appel de fonction sur la ligne de commande, déplacer le curseur entre les guillemets et attendre que l'utilisateur complète l'argument et clique <CR>manuellement.

Comment pouvez-vous faire la même chose depuis une fonction? J'ai essayé un tas de permutations de execute, call, normalet rien ne semble fonctionner. Je reçois des erreurs sur les caractères de fin ( <Left><Left>) ou exécute la fonction sans attendre la saisie de l'utilisateur.

ivan
la source

Réponses:

3

Utilisez la fonction input ().

let cmd = input("", "call FileTypeToggle(\"\")\<left>\<left>")
exe cmd
Garyjohn
la source
Non seulement cela a répondu à ma question, mais cela m'a inspiré pour redéfinir la fonction. Merci!
ivan