Это невозможно. То, на что ссылается @Prince Goulash, - это простое завершение имени файла, выполняемое самим vim. Если вы знаете, как принудить bash к вариантам завершения конвейера, вы можете создать функцию завершения для пользовательской команды, которая в свою очередь может вызвать встроенную команду :!
, но переопределение завершения для встроенных команд невозможно.
Лично я не знаю, как это сделать с помощью bash, и знаю, что попытка сделать это в zsh приводит к грязным хаки с переопределением встроенных команд zsh (например, compadd
), с использованием pexpect (python), Expect (perl). ) ожидайте (tcl), zsh / zpty или что-то подобное, чтобы запускать оболочку в интерактивном режиме и изобретать механизм zsh-> vim IPC (в противоположном направлении это намного проще) (однажды я начал работать над аналогичным модулем для zsh, но остановился так как на этом пути было слишком много проблем).