在bash中有一种快速方法可以根据单词的中间部分进行制表符自动完成。
例如,如果我在目录中有这些文件:
001_apple.txt 002_pear.txt 003_dog.txt
我想输入序列:*d<TAB>
来自动完成003_dog.txt。
这可以用bash完成吗?在其他炮弹中更容易做到吗?
答案 0 :(得分:4)
尝试使用ESC-g进行全局扩展。
并且您应该始终安装bash-completion软件包(默认情况下经常包含,但您需要在bash配置文件脚本中提供它)。
答案 1 :(得分:2)
看起来像zsh does this还有更多。请参阅:expand-or-complete-prefix和COMPLETE_IN_WORD选项。
Fish也可以很好地开箱即用。
答案 2 :(得分:2)
ls *d*<TAB>
在bash中运行。不确定这是不是Ben的意思。 ls
当然可以是任何其他命令。
答案 3 :(得分:0)
你可以替代
`ls *d*`
实现相同的效果,但不如制表完成那么方便
答案 4 :(得分:0)
我认为这是readline的一个功能(甚至可能不是默认的键绑定):
键入ls \*middle\*
,然后键入ctrl-x, *
将\*middle\*
替换为与该模式匹配的文件。