如何修复 Linux 文件名选项卡自动完成功能,即在目录上附加空格而不是尾随斜杠?

如何修复 Linux 文件名选项卡自动完成功能,即在目录上附加空格而不是尾随斜杠?

由于某些奇怪的原因,我的文件名自动完成的行为与正常情况不同。给定以下文件结构./foobar/file.txt,如果我想删除file.txt,我键入rm foob<TAB><TAB>并让命令行自动完成文件名到rm foobar/file.txt.

但现在,在点击第一个命令后,<TAB>我的命令会自动完成rm foobar(后面有一个空格foobar)。是否有可能是我不小心将其更改为这种行为?我怎样才能把它改回来?

答案1

根据我的经验,这通常是由于 中的一个文件中的一些行为不当的配置引起的/etc/bash_completion.d,这些文件在您安装各种软件包时会被安装和更新。我的建议是将所有文件移出该目录,启动一个新的 shell,然后查看行为是否恢复正常。如果是这样,您可以一次将一个(或一组)文件移回该目录,以查看哪些文件导致了问题。一旦缩小范围,请报告安装该文件的任何软件包中的错误!

答案2

使用complete -p rm来查看当前的完成情况rm,看看 bash 功能是否真的按照您想要的方式工作。

如果你不需要完成rm,例如像这样的参数-i,只需在你的 bash 配置中添加这样的一行,

complete -r rm; complete -o default rm(删除当前完成并设置默认完成)

相关内容