制表符忽略Bash / Debian中的某些文件

问题描述 投票:0回答:1

我正在Bash的标准Debian安装中使用制表符补全,并且有些文件被忽略了。例如,如果我有文件:

index.php
index.php.a

如果我键入vim i,然后tab,它将立即选择“ index.php”(请参见文件名后的空格)。通常,它只是完成“ index.php”,然后让我选择键入其他内容。

为什么在这种情况下表现不同?

更新

某些命令,例如“ cp”,似乎可以很好地处理制表符的补全,所以也许vim正在寻找特定的文件扩展名?

bash vim tab-completion
1个回答
0
投票

bash-completion程序包使用功能_filedir_xspec完成_filedir_xspec。该函数通常会完成文件名,但会根据要完成的命令排除某些模式。

对于vimvim像这样开始:

exclusion pattern

即,除其他外,以_install_xspec '*.@([ao]|so|so.!(conf|*/*) ... 结尾的文件应被忽略。其背后的想法可能是这些文件通常被创建为备份副本,并且您可能不想要对其进行编辑。

[如果要覆盖此行为,则可以将自己的补全添加到.a中;例如,要使vim在所有文件名上完成,请使用以下命令:

~/.bash_completion

这会使complete -f vim 制表符完成默认为内置文件完成行为。

© www.soinside.com 2019 - 2024. All rights reserved.