【问题标题】:Completing vim and shell commands with arguments using input() prompt使用 input() 提示符完成带参数的 vim 和 shell 命令
【发布时间】:2015-04-24 11:54:34
【问题描述】:

我需要接收来自用户的 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?

【问题讨论】:

    标签: vim tab-completion


    【解决方案1】:

    试试这个:

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

    完成“shell命令”

    【讨论】:

    • 我试过了,文件名补全不起作用。此外,我希望仍然能够输入正常的 vim 命令,而不仅仅是 shell。
    • 你想自动完成 shell 命令名,不是吗? Completing shell commands using input() prompt@svlasov
    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多