如果使用绝对路径调用应用程序,Bash 补全将不起作用

如果使用绝对路径调用应用程序,Bash 补全将不起作用

不知道为什么,但是如果我在绝对路径中调用应用程序,bash 补全将不起作用。

比如我当前目录下有file1 & file2

[zhengw@localhost ~]$ rm -f file<tab><tab>
file1  file2
[zhengw@localhost ~]$ which rm
/bin/rm
[zhengw@localhost ~]$ /bin/rm -f file<tab><tab>

在上面的示例中,bash auto 在第一个命令中为我完成了文件,但第二个命令没有返回任何内容。

还尝试了其他命令,结果发现如果我使用绝对路径,bash 补全将不起作用。

答案1

所以我已经找到了根本原因。我为我的 vim 安装了 fzf 应用程序来使用它的模糊搜索功能。 fzf vim 插件的默认安装方法安装了一个 bash 补全脚本,该脚本来源于 bashrc 文件,最终弄乱了原来的补全功能。

我可以通过卸载插件并使用 --bin 选项重新安装来解决问题。

解决方案:

更改 fzf 插件的安装方法(在你的 .vimrc 中):

Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all' }

到:

Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --bin' }

相关内容