From 5c31078043810ce883254de72f738a06e12e4554 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 14 Dec 2020 06:55:51 +0300 Subject: add nnn configuration --- %HOME%/.config/nnn/plugins/myfzcd | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 %HOME%/.config/nnn/plugins/myfzcd (limited to '%HOME%/.config/nnn') diff --git a/%HOME%/.config/nnn/plugins/myfzcd b/%HOME%/.config/nnn/plugins/myfzcd new file mode 100755 index 0000000..36bfb24 --- /dev/null +++ b/%HOME%/.config/nnn/plugins/myfzcd @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +# Like the fzcd plugin, but better. + +set -o errexit -o pipefail + +if command -v fzf > /dev/null 2>&1; then + sel="$( fzf )" +else + exit 1 +fi + +nnn_cd() { + dir="$1" + + if [ -z "$NNN_PIPE" ]; then + echo "No pipe file found" >&2 + return + fi + + printf -- '%s' "0c$dir" > "$NNN_PIPE" +} + + +if [ -n "$sel" ]; then + if [ ! -d "$sel" ]; then + sel="$( dirname -- "$sel" )" + elif [ "$sel" = . ]; then + exit 0 + fi + + case "$sel" in + /*) + nnn_cd "$sel" + ;; + *) + sel="${sel#./}" + + if [ "$PWD" = "/" ]; then + nnn_cd "/$sel" + else + nnn_cd "$PWD/$sel" + fi + ;; + esac +fi -- cgit v1.2.3