答案1
您可以使用glob-expand-word
man 中的函数bash
:
点之前的单词被视为路径名的模式 扩展,并插入匹配的文件名列表, 替换单词。如果提供了数字参数,则 星号附加在路径名扩展之前。
添加类似这样的内容到你的~/.inputrc
:
Control-x: glob-expand-word
因此,在您的示例中,$ ls *
后面跟着的Ctrl-X将扩展为。$ ls a b c
答案2
在 bash 中,readline 功能被调用并且默认glob-expand-word
绑定。CtrlX*
答案3
当您处于vi
模式 ( set -o vi
) 时,“魔法键”为Esc*。它与bash
和均有效ksh
。
答案4
glob-expand-word (\Cx*) 的替代方案是 insert-completions (\e*)。它不需要末尾的星号,但也包括其他补全,例如隐藏文件。我在 ~/.inputrc 中重新绑定了这两个选项:
# insert glob results (\C-x* by default)
"\C-g": glob-expand-word
# insert completion list (\e* by default)
"\ei": insert-completions
glob-complete-word (\eg) 可用于将例如转换/System/Library/Launch*/*Finder
为/System/Library/LaunchAgents/com.apple.Finder.plist
。