summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/common/goo7
-rw-r--r--config/essentials/zsh/functions.zsh21
2 files changed, 15 insertions, 13 deletions
diff --git a/bin/common/goo b/bin/common/goo
index 2a5faad..a56cbaf 100755
--- a/bin/common/goo
+++ b/bin/common/goo
@@ -15,14 +15,9 @@ VisualParadigm
intellij
arduino15"
-if [ -n "$2" ]
-then
- [ -d "$2" ] && dest="$2" || opt="-q $2"
-fi
-
for dir in $exclude; do
dirs="$dirs -name \"$dir\" -o "
done
cmd="find ${dest:-$HOME} \(${dirs} -false \) -prune -o -type ${1:-f} -mindepth 1 -print"
-eval "$cmd" 2>/dev/null | fzf $opt
+eval "$cmd" 2>/dev/null
diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh
index 053ce8e..c4999db 100644
--- a/config/essentials/zsh/functions.zsh
+++ b/config/essentials/zsh/functions.zsh
@@ -39,23 +39,30 @@ nnn() { test -z "$NNNLVL" && /usr/bin/nnn "$@" || exit }
ranger() { test -z "$RANGER_LEVEL" && /usr/bin/ranger "$@" || exit }
# googoo aliases
-ff () { goo f "$1" }
-fd () { goo d "$1" }
-fdf () { goo f "$1" | xargs -I {} dirname "{}" }
+_googoo_fzf_opt ()
+{
+ if [ "$1" ]
+ then
+ [ -d "$1" ] && dest="$1" || opt="-q $1"
+ fi
+}
o ()
{
- f="$(ff $1)"
+ _googoo_fzf_opt "$1"
+ f="$(goo f "dest" | fzf $opt)"
test "$1" && shift
- test -n "$f" && $EDITOR $@ "$f"
+ test -f "$f" && $EDITOR $@ "$f"
}
go ()
{
- d="$(fd $1)"
+ _googoo_fzf_opt "$1"
+ d="$(goo d "$dest" | fzf $opt)"
test -d "$d" && cd "$d"
}
ogo ()
{
- d="$(fdf $1)"
+ _googoo_fzf_opt "$1"
+ d="$(dirname "$(goo f "$dest")" | fzf $opt)"
test -d "$d" && cd "$d"
}