是否可以为:启用bash_completion:或者:r!在VIM?

时间:2011-07-23 12:03:35

标签: vim bash-completion

我可以使用:shell输入当前目录并运行命令。 bash_completion工作正常。

但是如何让bash_completion在中工作:!命令:r!命令案例?

注意即可。我是Emacs用户和Emacs M - !命令不允许这样的事情(也 Mx shell ,你需要 Mx术语来获得bash_completion)

2 个答案:

答案 0 :(得分:2)

这是不可能的。 @Prince Goulash所指的是由vim本身完成的简单文件名完成。如果您知道如何在某处强制执行bash到管道完成变体,则可以为自定义命令创建完成函数,该函数可以依次调用内置:!,但不能重新定义内置命令的完成。

我个人不知道如何使用bash执行此操作,并且知道尝试在zsh中执行此操作会导致重新定义zsh内置命令(如compadd),使用pexpect(python),Expect导致脏乱(perl),expect(tcl),zsh / zpty或类似的东西以交互模式运行shell并发明zsh-> vim IPC机制(相反方向它更简单)(我曾经开始为zsh开发一个类似的模块,但由于这方面存在太多问题而停止了。)

答案 1 :(得分:1)

你有没有

set nocompatible
你的.vimrc中的

?这会自动启用:!的前模式完成功能。要查看可能的完成列表,您还可以使用

set wildmenu

并调查wildmode选项。