nnn/plugins/fzcd

38 lines
800 B
Plaintext
Raw Normal View History

#!/usr/bin/env sh
2020-05-06 13:11:01 +00:00
# Description: Run fzf and go to the directory of the file selected
#
# Shell: POSIX compliant
# Author: Anna Arad
2019-11-21 20:44:25 +00:00
. "$(dirname "$0")"/.nnn-plugin-helper
2020-05-06 13:11:01 +00:00
if [ "$(cmd_exists fzf)" -eq "0" ]; then
sel=$(fzf)
# Show only the file and parent dir
2021-04-17 13:55:07 +00:00
# sel=$(fzf --delimiter / --with-nth=-2,-1 --tiebreak=begin --info=hidden)
else
exit 1
fi
if [ -n "$sel" ]; then
2021-03-14 07:29:24 +00:00
if [ "$sel" = "." ] || { ! [ -d "$sel" ] && ! [ -f "$sel" ]; }; then
2019-12-09 17:57:10 +00:00
exit 0
fi
# Check if selected path returned
# by fzf command is absolute
case $sel in
/*) nnn_cd "$sel" ;;
2020-11-22 15:24:49 +00:00
*)
# Remove "./" prefix if it exists
sel="${sel#./}"
2020-11-22 15:24:49 +00:00
if [ "$PWD" = "/" ]; then
nnn_cd "/$sel"
else
nnn_cd "$PWD/$sel"
fi;;
2020-11-22 15:24:49 +00:00
esac
fi