bra*_*amp 38 bash autocomplete globbing
我明白,如果你输入ls *它实际上是扩展到ls a b c当前直接有文件的时候a,b和c.
我想知道在我输入之前是否有办法扩展它。类似于Ctrl+X 的工作方式,或Tab Complete 的工作方式。
所以为了让自己清楚
$ ls *
<press magic key>
$ ls a b c
Run Code Online (Sandbox Code Playgroud)
以类似的方式:
$ ls ~/
<press tab>
$ ls /home/username
Run Code Online (Sandbox Code Playgroud)
我以为我以前看过这个,但我可能弄错了。
cYr*_*rus 24
您可以使用glob-expand-wordman 中的函数bash:
point 之前的单词被视为路径名的模式 扩展,并插入匹配的文件名列表, 替换这个词。如果提供了数字参数,则 星号附加在路径名扩展之前。
将这样的内容添加到您的~/.inputrc:
Control-x: glob-expand-word
Run Code Online (Sandbox Code Playgroud)
因此,在您的示例中,$ ls *随后的Ctrl-X将扩展为$ ls a b c。
$ 绑定 -q glob-expand-word glob-expand-word 可以通过“\Cx*”调用。 $bind-q 插入完成 插入完成可以通过“\e*”调用。
所以要使用这些我们可以做
ls * Ctrl+x *
或者
ls * Esc *