V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chuangbo
V2EX  ›  macOS

bash_completion 命令参数自动完成

  •  
  •   chuangbo · 2010-11-12 12:08:09 +08:00 · 4857 次点击
    这是一个创建于 5143 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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。



    很简单,看代码就好了。
    然后这里是文档,接口相当简单,而且当然是基于 shell 的,所以扩展性也是无限的。
    http://www.debian-administration.org/articles/317
    4 条回复    1970-01-01 08:00:00 +08:00
    chuangbo
        1
    chuangbo  
    OP
       2010-11-12 12:09:37 +08:00
    为虾米 gist 没有展开捏~
    Livid
        2
    Livid  
    MOD
       2010-11-12 12:13:06 +08:00
    修改了一下,因为目前正则还没有对 https 进行匹配,http 就好了。
    chuangbo
        3
    chuangbo  
    OP
       2010-11-12 12:13:43 +08:00
    @Livid 谢谢!~
    roamlog
        4
    roamlog  
       2010-11-12 12:56:09 +08:00
    我在 mac 下使用 zsh
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5446 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 553ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.