- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我注意到某些程序(例如 hg)允许用户使用制表符完成命令的特定部分。例如,如果在 hg 存储库工作目录中,我键入:
hg qpush --move b8<TAB>
它将尝试使用我的补丁队列中以“b8”开头的任何 mercurial 补丁来完成命令。
我想做的是在我的程序中模仿这种行为。也就是说,我有一系列命令依赖于某个目录中的文件,我希望能够在 shell 中提供制表符完成功能。是否有用于在 Ubuntu Linux 上提供此功能的 API(最好使用 python,因为我的脚本就是用它编写的)?
最佳答案
为此,您需要为您的 shell 编写制表符补全模块。大多数 Linux 发行版中的默认 shell 是 bash
,因此您应该编写一个完成脚本(通常是一个 shell 脚本)。编写脚本后,将其添加到 /etc/bash_completion.d/
。这应该与您的程序一起分发(对于 Linux 分发,包含在包中)。
Debian 管理部门有 a guide for writing your completion scripts .要在 Mac 上使用补全,请参阅 https://trac.macports.org/wiki/howto/bash-completion .
有关完成文件的示例,请查看 bash-completion
project from Debian (还有 on Github )。另见 https://unix.stackexchange.com/questions/4738/an-easy-bash-completion-tutorial .
如果你使用 zsh
,hack.augusto linked to the documentation for writing completions .
关于python - 如何让我的程序利用制表符补全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878215/
我是一名优秀的程序员,十分优秀!