42 lines
792 B
Plaintext
42 lines
792 B
Plaintext
|
#!/bin/zsh
|
||
|
|
||
|
function felix_pwd_abbr {
|
||
|
base_pwd=$PWD
|
||
|
tilda_notation=${base_pwd//$HOME/\~}
|
||
|
pwd_list=(${(s:/:)tilda_notation})
|
||
|
list_len=${#pwd_list}
|
||
|
|
||
|
if [[ $list_len -le 1 ]]; then
|
||
|
echo $tilda_notation
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
if [[ ${pwd_list[1]} != '~' ]]; then
|
||
|
formed_pwd='/'
|
||
|
fi
|
||
|
|
||
|
firstchar=$(echo ${pwd_list[1]} | cut -c1)
|
||
|
if [[ $firstchar == '.' ]] ; then
|
||
|
firstchar=$(echo ${pwd_list[1]} | cut -c1,2)
|
||
|
fi
|
||
|
|
||
|
formed_pwd=${formed_pwd}$firstchar
|
||
|
|
||
|
for ((i=2; i <= $list_len; i++)) do
|
||
|
if [[ $i != ${list_len} ]]; then
|
||
|
|
||
|
firstchar=$(echo ${pwd_list[$i]} | cut -c1)
|
||
|
if [[ $firstchar == '.' ]] ; then
|
||
|
firstchar=$(echo ${pwd_list[$i]} | cut -c1,2)
|
||
|
fi
|
||
|
|
||
|
formed_pwd=${formed_pwd}/$firstchar
|
||
|
else
|
||
|
formed_pwd=${formed_pwd}/${pwd_list[$i]}
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
echo $formed_pwd
|
||
|
return
|
||
|
}
|