dotfiles/zsh/.zsh/functions/spwd

26 lines
531 B
Text
Raw Permalink Normal View History

# From https://stackoverflow.com/a/45336078
paths=(${(s:/:)PWD})
cur_path='/'
cur_short_path='/'
for directory in ${paths[@]}
do
cur_dir=''
for (( i=0; i<${#directory}; i++ )); do
cur_dir+="${directory:$i:1}"
matching=("$cur_path"/"$cur_dir"*/)
if [[ ${#matching[@]} -eq 1 ]]; then
break
fi
done
cur_short_path+="$cur_dir/"
cur_path+="$directory/"
if [[ $cur_path == $HOME/ ]];
then cur_short_path='~/'
fi
done
printf %b "${cur_short_path: : -1}"
echo