如何以不同的方式自动完成每个参数?

时间:2013-10-09 09:25:53

标签: shell zsh

我有一个名为load_pg的函数,其定义如下:

load_pg () {
    pg_restore --verbose --clean --no-acl --no-owner -h localhost -U $1 -d $2 $3
}

我正在尝试使用以下代码自动完成每个参数:

#compdef load_pg
_arguments -s \
  "1::_ldpguser" \
  "2::_ldpgdb" \
  "3::_ldpgfile"

_ldpguser () {
  compadd $USER
}

_ldpgdb () {
  compadd $(cat config/database.yml | grep -i database | awk '{print $2}')
}

_ldpgfile () {
  compadd $(ls *.dump*)
}

不幸的是,当我按TAB时没有任何反应。我究竟做错了什么?我尝试使用following answer

中的代码

0 个答案:

没有答案