From 821b8608dfbe8a3e9e3a01c57a507ced2e72082b Mon Sep 17 00:00:00 2001 From: rydesun Date: Wed, 25 Aug 2021 05:07:14 +0800 Subject: [PATCH] Update zsh functions --- .config/zsh/functions/fish_collapsed_pwd | 56 +++++++++--------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/.config/zsh/functions/fish_collapsed_pwd b/.config/zsh/functions/fish_collapsed_pwd index 8b38cff..46a3d6e 100644 --- a/.config/zsh/functions/fish_collapsed_pwd +++ b/.config/zsh/functions/fish_collapsed_pwd @@ -1,42 +1,28 @@ -# https://zhuanlan.zhihu.com/p/51008087 () { - local pwd="$1" - # fix end slash - local home="${HOME%/}" - local size=${#home} - [[ $# == 0 ]] && pwd="$PWD" - # fix end slash - pwd=${pwd%/} + [[ $# == 0 ]] && local pwd="$PWD" || local pwd=$1 + [[ -z "$pwd" || "$pwd" == "/" ]] && echo $pwd && return - [[ -z "$pwd" ]] && return - if [[ "$pwd" == "/" ]]; then - echo "/" - return - elif [[ "$pwd" == "$home" ]]; then - echo "~" - return - fi - [[ "$pwd" == "$home/"* ]] && pwd="~${pwd:$size}" - if [[ -n "$BASH_VERSION" ]]; then - local IFS="/" - local elements=($pwd) - local length=${#elements[@]} - for ((i=0;i 1 ]]; then + local c=${elem:0:1} + if [[ $c == '.' ]]; then + elements[$i]=${elem:0:2} + else elements[$i]=${elem:0:1} fi - done - else - local elements=("${(s:/:)pwd}") - local length=${#elements} - for i in {1..$((length-1))}; do - local elem=${elements[$i]} - if [[ ${#elem} > 1 ]]; then - elements[$i]=${elem[1]} - fi - done - fi + fi + done + local IFS="/" echo "${elements[*]}" }