有没有办法控制在 bash4 命令提示符下键入的第一个命令的完成?
我可以用完整的 -E 来控制“空行”的完成,但是一旦输入了一些字符,bash(或者可能是 readline)就会给我所有来自 PATH 的文件名,内置命令(if, then, else ... ) 和完成尝试时的功能 (TAB)。
我能够通过在 PROMPT_COMMAND 中取消设置 PATH 并通过绑定(bind)函数来捕获 DEBUG 来恢复它来避免 PATH 条目,但是没有摆脱 bash bultin 命令完成的运气。
有什么想法吗?
最佳答案
这是 bash 可编程完成工具设计中名副其实的弱点。即使是“默认”命令完成 -D
也只对空行上的命令生效(前提是没有指定 complete -E
)。缺少类似 complete -I
的内容(用于不完整输入的命令)。
关于键入 "first command"时 Bash 可编程完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450289/