浏览代码

[wd] update minor version (v0.4.2)

Markus Faerevaag 8 年之前
父节点
当前提交
7d9648e631
共有 1 个文件被更改,包括 22 次插入6 次删除
  1. 22 6
      plugins/wd/wd.sh

+ 22 - 6
plugins/wd/wd.sh

@@ -8,7 +8,7 @@
 # @github.com/mfaerevaag/wd
 
 # version
-readonly WD_VERSION=0.4
+readonly WD_VERSION=0.4.2
 
 # colors
 readonly WD_BLUE="\033[96m"
@@ -143,7 +143,7 @@ wd_warp()
         fi
     elif [[ ${points[$point]} != "" ]]
     then
-        cd ${points[$point]}
+        cd ${points[$point]/#\~/$HOME}
     else
         wd_exit_fail "Unknown warp point '${point}'"
     fi
@@ -169,7 +169,7 @@ wd_add()
     elif [[ ${points[$2]} == "" ]] || $force
     then
         wd_remove $point > /dev/null
-        printf "%q:%s\n" "${point}" "${PWD}" >> $WD_CONFIG
+        printf "%q:%s\n" "${point}" "${PWD/#$HOME/~}" >> $WD_CONFIG
 
         wd_print_msg $WD_GREEN "Warp point added"
 
@@ -203,6 +203,21 @@ wd_list_all()
 {
     wd_print_msg $WD_BLUE "All warp points:"
 
+    entries=$(sed "s:${HOME}:~:g" $WD_CONFIG)
+
+    max_warp_point_length=0
+    while IFS= read -r line
+    do
+        arr=(${(s,:,)line})
+        key=${arr[1]}
+
+        length=${#key}
+        if [[ length -gt max_warp_point_length ]]
+        then
+            max_warp_point_length=$length
+        fi
+    done <<< $entries
+
     while IFS= read -r line
     do
         if [[ $line != "" ]]
@@ -213,16 +228,16 @@ wd_list_all()
 
             if [[ -z $wd_quiet_mode ]]
             then
-                printf "%20s  ->  %s\n" $key $val
+                printf "%${max_warp_point_length}s  ->  %s\n" $key $val
             fi
         fi
-    done <<< $(sed "s:${HOME}:~:g" $WD_CONFIG)
+    done <<< $entries
 }
 
 wd_ls()
 {
     wd_getdir $1
-    ls $dir
+    ls ${dir/#\~/$HOME}
 }
 
 wd_path()
@@ -248,6 +263,7 @@ wd_show()
         local wd_matches
         wd_matches=()
         # do a reverse lookup to check whether PWD is in $points
+        PWD="${PWD/$HOME/~}"
         if [[ ${points[(r)$PWD]} == $PWD ]]
         then
             for name in ${(k)points}