It is not possible. What @Prince Goulash is referring to is a simple filename completion done by vim itself. If you know how to force bash to pipe completion variants somewhere you can create a completion function for custom command which may in turn call built-in :!
, but redefining completion for built-in commands is not possible.
I personally do not know how to do this with bash and know that trying to do so in zsh results in dirty hacks with redefining zsh built-in commands (like compadd
), using pexpect (python), Expect (perl), expect (tcl), zsh/zpty or something similar to run shell in interactive mode and inventing zsh->vim IPC mechanism (in opposite direction it is much simpler) (I once started working on a similar module for zsh, but stopped as there were too much problems on this way).