使用input()提示符使用参数完成vim和shell命令

时间:2015-04-24 11:54:35

标签: vim tab-completion

我需要从用户接收vim命令并将其存储到变量中。用户应该能够使用Ex模式的参数键入命令(通过 Tab 自动完成)。我发现这可以通过两种方式完成:定义自定义命令或使用input()command完成行为:

  

完成行为

     

-complete=command Ex命令(和参数)

问题是input()拒绝使用参数完成shell命令,尽管定义自定义命令没有问题。

自定义命令测试:

:command! -nargs=+ -complete=command ExCmd let mycmd=<q-args>

用法:

:ExCmd !ls /tmp

完成输入时一直有效。我能够完成任何vim或shell命令(如!ls)和文件名(如/tmp)。没问题。

input()测试:

:let mycmd = input("Enter a command: ", "", "command")

在此测试中,您会收到Enter a command:提示,但在输入例如!ls并按 Tab 时 - 没有任何反应,完成功能无效。

我错过了什么吗?或者它是Vim bug?

1 个答案:

答案 0 :(得分:0)

试试这个:

:let mycmd = input("Enter a command: ", "", "shellcmd")

完成&#34; shell命令&#34;