bash_completion 命令参数自动完成

2010-11-12 12:08:09 +08:00
 chuangbo
Mac的用户可能不会知道有 bash_completion 这个好东西。

Linux 上的 Geek 们很喜欢 CLI,于是发明了 Readline 和 auto completion,但是他们远远不知足,希望命令的参数也能自动完成,比如打上 ssh 然后按下 tab 就能自动提示曾经登陆过的机器,打上 tar xzvf 就能 自动提示 *.tar.gz 文件,忽略 *.tar.bz2 文件,云云

于是他们发明了 bash_completion.

这个东西在 gentoo 上是很牛X的,是 debian 开发的。当然,Mac 上默认是没有的,而且 Mac 的 bash 版本也老的可怜。

安装它只需要 port install bash-completion,然后修改下 /etc/bashrc,就可以了~

她是可以扩展的,默认安装上会带上一些很基本的命令,但是诸如 git 这些就没有了,我是从 gentoo 的源里面拖出来的,Ubuntu 里面也是有的。

重点是如何自己扩展她,加上自己的一些命令。我用一个小例子来说明。

这是一个启动 web server fastcgi 的服务脚步,第一个参数自动匹配 yaml 配置文件,简单区分开发环境和生产环境,第二个参数是命令,用来启动服务或者启动debug py shell。

http://gist.github.com/673701

很简单,看代码就好了。
然后这里是文档,接口相当简单,而且当然是基于 shell 的,所以扩展性也是无限的。
http://www.debian-administration.org/articles/317
4840 次点击
所在节点    macOS
4 条回复
chuangbo
2010-11-12 12:09:37 +08:00
为虾米 gist 没有展开捏~
Livid
2010-11-12 12:13:06 +08:00
修改了一下,因为目前正则还没有对 https 进行匹配,http 就好了。
chuangbo
2010-11-12 12:13:43 +08:00
@Livid 谢谢!~
roamlog
2010-11-12 12:56:09 +08:00
我在 mac 下使用 zsh

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/4407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX