plugins/bookmarks | 12 ++++++++---- diff --git a/plugins/bookmarks b/plugins/bookmarks index c17d9e2ceb1565824524ed7fd416b8836957ad06..614b20f268d9958ded661385bdd1aa2e4f1070b4 100755 --- a/plugins/bookmarks +++ b/plugins/bookmarks @@ -17,6 +17,7 @@ # `ln -s /path/to/media media` # `ln -s /path/to/movies movies` # # Bonus tip: Add `$BOOKMARKS_DIR` to your `$CDPATH` +# https://linux.101hacks.com/cd-command/cdpath/ # # TODO: # 1. Remove `fzf` dependency @@ -27,7 +28,10 @@ BOOKMARKS_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/nnn/bookmarks" # Check if NNN_PIPE is set -[ -z "$NNN_PIPE" ] && { echo 'NNN_PIPE is not set'; exit 2; } +if [ -z "$NNN_PIPE" ]; then + echo 'ERROR: NNN_PIPE is not set' | ${PAGER:-less} + exit 2 +fi # Get all directory symlinks get_links() { @@ -37,12 +41,12 @@ # Skip unless directory symlink [ -h "$entry" ] || continue [ -d "$entry" ] || continue - echo "$(basename "$entry") -> $(readlink -f "$entry")" - done | column -t + printf "%20s -> %s\n" "$(basename "$entry")" "$(readlink -f "$entry")" + done | fzf | awk 'END { print "'"$BOOKMARKS_DIR"'/"$1 }' } # Choose symlink with fzf -cddir="$(get_links "$BOOKMARKS_DIR" | fzf | awk 'END { print "'"$BOOKMARKS_DIR"'/"$1 }')" +cddir="$(get_links "$BOOKMARKS_DIR")" # Writing result to NNN_PIPE will change nnn's active directory # https://github.com/jarun/nnn/tree/master/plugins#send-data-to-nnn