From 9afd7cf3bf8badb7e704fb1e1fbdb8031572c722 Mon Sep 17 00:00:00 2001 From: Anna Arad <4895022+annagrram@users.noreply.github.com> Date: Wed, 23 Oct 2019 13:04:12 +0300 Subject: Implement plugins control of nnn + plugins (#364) * Implement plugins control of nnn + plugins * Refactor plugins control code and fix getplugs to recognize hidden files * Fix bug when going to dir on non-current context from plugin * Fix some plugins to work on openbsd and freebsd * Renamings * Switch to -R flag in cp instead of -r; BSDs complain * Change braces of function location * Rewrite plugin creation in README and add new plugins to the table * Update the fzcd script to include fzy or fzf * Change plugin name resolve-link-dir -> lncd * Fixing plugins README table * Remove some cd plugins but add them as examples to plugins README --- plugins/fzcd | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 plugins/fzcd (limited to 'plugins/fzcd') diff --git a/plugins/fzcd b/plugins/fzcd new file mode 100755 index 0000000..443ac2d --- /dev/null +++ b/plugins/fzcd @@ -0,0 +1,32 @@ +#!/usr/bin/env sh + +# Description: Run fzf and go to the directory of the file selected +# +# Shell: POSIX compliant +# Author: Anna Arad + +. $(dirname $0)/.nnn-plugin-helper + +if [ "$(cmd_exists fzy)" -eq "0" ]; then + if [ "$(cmd_exists fd)" -eq "0" ]; then + fd=fd + elif [ "$(cmd_exists fdfind)" -eq "0" ]; then + fd=fdfind + else + fd=find + fi + + sel=$($fd | fzy) +elif [ "$(cmd_exists fzf)" -eq "0" ]; then + sel=$(fzf --print0) +else + exit 1 +fi + +if [ "$?" -eq "0" ]; then + case "$(file -bi "$sel")" in + *directory*) ;; + *) sel=$(dirname $sel) ;; + esac + nnn_cd "$PWD/$sel" +fi -- cgit v1.2.3-70-g09d2