Vimscript: Wie kann ich eine Funktion aufrufen, aber auf Benutzereingaben warten, bevor sie ausgeführt wird?

881
ivan

Auf der rechten Seite einer Tastaturbelegung können Sie beispielsweise :call FileTypeToggle("")<Left><Left>einen Funktionsaufruf in der Befehlszeile starten, den Cursor zwischen die Anführungszeichen bewegen und warten, bis der Benutzer das Argument eingegeben und <CR>manuell gedrückt hat.

Wie können Sie dasselbe innerhalb einer Funktion tun? Ich habe eine Reihe von Permutationen versucht execute, call, normal, und nichts scheint zu funktionieren. Ich bekomme entweder Fehler über nachgestellte Zeichen ( <Left><Left>) oder führt die Funktion aus, ohne auf Benutzereingaben zu warten.

1

1 Antwort auf die Frage

3
garyjohn

Verwenden Sie die Funktion input ().

let cmd = input("", "call FileTypeToggle(\"\")\<left>\<left>") exe cmd 
Dies hat meine Frage nicht nur beantwortet, sondern mich auch dazu inspiriert, die Funktion neu zu gestalten. Vielen Dank! ivan vor 10 Jahren 0