为Vim命令-complete属性设置多个值

3
我正在尝试为我正在设置的插件中的自定义命令启用命令补全,步骤如下:
command! -complete=shellcmd -nargs=* EScratch call s:ShellScratch(<f-args>)

我想要为shellcmd和file启用完整的选项,但似乎complete属性只能接受1个选项。为了更好地理解我的目标,我正在开发一个插件来创建一个简单的scratch缓冲区。我希望能够从命令模式运行shell命令并将输出复制到scratch缓冲区。我已经实现了所有这些,但如果有类似于shell的自动补全功能会更加高效。可以在此处查看完整的脚本:https://github.com/ifthikhan/vimscratch/blob/master/plugin/vimscratch.vim。非常感谢您提供的任何指导。
1个回答

2

很遗憾,你不能这样做。如果你真的需要这个功能,你要么定义两个分别对应完整命令的命令,例如:ScratchShell:ScratchFile,或者使用-complete=custom[list]并提供自己的完成函数,在其中重新实现这两个源。文件名完成实际上可以很容易地使用glob()来完成;我不太确定shell命令是否也是如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接