创建zsh自动完成

时间:2017-09-15 12:49:06

标签: autocomplete zsh

我有一个包含项目的目录,我创建了一个cd到这个目录的函数。

projects_folder="/opt/work/projects/"
function pr () {
  cd $projects_folder
  if [ ! -z $1 ]; then
    cd $1
  fi
}

我想为此功能创建zsh自动完成功能

compdef '_path_files -W /opt/work/projects -/ && return 0 || return 1' pr

我也创建自定义完整功能

_pr(){
  local -a list
  for dir in $(ls $projects_folder); do
    inside_dir=$projects_folder$dir
    if [ -d $inside_dir ]; then
        list=( $list $dir )
        for d in $(ls $inside_dir); do
            double_dir=$inside_dir/$d
            if [ -d $double_dir ]; then
                list=( $list $dir/$d )
            fi
        done
    fi
  done
  compadd -a $list
}
compdef _pr pr

但这两种变体都不起作用。有人可以解释我错了吗?我的.zshrc here

UPD: 解决方案是从.zshrc删除antigen apply,关于此issue

0 个答案:

没有答案