开发者

Is it possible to enable bash_completion for :! or :r ! in VIM?

开发者 https://www.devze.com 2023-03-22 15:38 出处:网络
I can use :shell to enter current dir and run commands. bash_completion work fine. But how get bash_completion working in 开发者_如何学运维:! command or :r ! command case?

I can use :shell to enter current dir and run commands. bash_completion work fine.

But how get bash_completion working in 开发者_如何学运维:! command or :r ! command case?

Note. I am Emacs user and Emacs M-! command don't allow such things (also M-x shell, you need M-x term to get bash_completion).


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).


Have you got

set nocompatible

in your .vimrc? This automatically enables ex-mode completion for :!. To see the list of possible completions you could also use

set wildmenu

and investigate the wildmode options.

0

精彩评论

暂无评论...
验证码 换一张
取 消