有没有办法控制在bash4命令提示符下输入第一个命令的完成情况?
我可以使用完整的-E控制“空行”的完成,但是只要输入了一些字符,bash(或者可能是readline)就会给我所有来自PATH的文件名,内置命令(if,then,else ...... )和完成尝试时的功能(TAB)。
我能够通过在PROMPT_COMMAND中取消设置PATH并通过绑定功能来捕获DEBUG来恢复它,但是没有运气来摆脱bash bultin命令的完成。
有什么想法吗?
答案 0 :(得分:2)
这是bash可编程完成设施设计中的一个真正的弱点。即使“默认”命令完成-D
也仅对空白行上的命令生效(假设未指定complete -E
)。 <{1}}(对于未完全输入的命令)缺少。
答案 1 :(得分:0)
从 Bash 5.0 开始,bash 内置 complete
支持 -I
选项:
-I 选项表示其他提供的选项和操作应该 申请完成行上的初始非分配词,或 在命令分隔符之后,例如‘;’或‘|’,通常是命令 名称补全。
我能够在 ubuntu docker 映像上download and install bash 5.1 毫无问题地使用它来模拟工具环境 shell。重击 5 should mostly be a drop-in replacement。
答案 2 :(得分:-3)