我有一个包含项目的目录,我创建了一个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