我正在写一个vim脚本函数。在执行期间,我想进入命令行以提供一些无法提前确定的参数,用于某些特定命令。我想要像
这样的东西:startinsert
但应该像
:startcmd
有可能吗?还是其他一些方法?
答案 0 :(得分:1)
有一种方法,我们可以使用以下代码来模仿命令行。
exec input(prompt, text, completion)
text
和completion
是可选的,:h input()
表示更多
但有一点需要注意:
:h command-completion
参数指示的vim内置完成(completion
更多),当您点击<tab>
中的input()
时,光标前面的整行前一行完成。这可能不是你想要的,例如,我只想完成最后一个单词而不是整个前一行。
要解决此问题,您必须编写自己的完成功能,请参阅:h command-completion-custom
和:h command-completion-customlist
答案 1 :(得分:1)
input()
就是你想要的。
以下是一个例子:
let myFile = input("Choose a file: ", "", "file")
execute 'edit ' . myFile
另一个:
buffer `=input("Choose a buffer: ", "", "buffer")`
请参阅:help input()
。
您还可以允许用户使用inputlist()
从预定义的一组选项中进行选择。