vi <TAB> 仅完成 bash 中的目录

use*_*107 3 bash autocomplete vi

在我输入的目录中vi,然后tab(两次),这给了我

user$ vi 
CMakeFiles/ global/     libs/
Run Code Online (Sandbox Code Playgroud)

ls后跟 2 tabs 给了我

user$ ls 
! core.log CMakeFiles/ global/     libs/ _jni/
Run Code Online (Sandbox Code Playgroud)

(注意:ls 的别名为 `ls -Ah --color=auto',_jni 是一个符号链接,并且没有任何文件被隐藏。)

我认为vi在制表符完成期间不显示任何文件,而只显示目录。为什么会这样?如何使vi行为与ls? 在浏览了 SE 上的一篇文章后,我将以下行放在 ~/.vimrc 中。但在这种情况下它似乎没有任何作用。

set wildmode=longest,list,full
set wildmenu
Run Code Online (Sandbox Code Playgroud)

版本vi:VIM - Vi 改进版 7.3.429
版本ls:ls (GNU coreutils) 8.13

dai*_*isy 6

我在 Arch Linux 上也有同样的问题,最后我发现是完成功能的问题。

用于complete -r vim删除完成者。(或将该行放到您的 bashrc 中)