]> Sergey Matveev's repositories - nnn.git/commitdiff
Plugin finder: run custom find/fd/grep/rg/fzf and list
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 3 May 2020 11:39:30 +0000 (17:09 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 3 May 2020 13:33:42 +0000 (19:03 +0530)
README.md
plugins/README.md
plugins/finder [new file with mode: 0755]

index fa5f93747485f52354f09c3da4ddb815e59ee346..0fcc3b6f47abdc749ada6d0c72c03572be71a544 100644 (file)
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ It runs smoothly on the Pi, [Termux](https://www.youtube.com/watch?v=AbaauM7gUJw
 - Edit and preview markdown, man page, html
 - Open a file and auto-advance to the next
 - Export (filtered) list of visible files
-- Find files by mime-type and list in `nnn`
+- Find and list in `nnn` from `nnn`
 - Unlimited bookmarks, plugins, commands with custom hotkeys
 - Write a plugin in any language you know
 - Configure the middle mouse click to do anything
index 306723604024e4bd494cb000e7b2c39b8823435d..dbd0e9ea174f098cc016b49bb8d17f8cbc114dca 100644 (file)
@@ -32,6 +32,7 @@ Plugins are installed to `${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins`.
 | chksum | Create and verify checksums | sh | md5sum,<br>sha256sum |
 | diffs | Diff for selection (limited to 2 for directories) | sh | vimdiff |
 | dragdrop | Drag/drop files from/into nnn | sh | [dragon](https://github.com/mwh/dragon) |
+| finder | Run custom find command and list | sh | - |
 | fzcd | Change to the directory of a fuzzy-selected file/dir | sh | fzf/fzy<br>fd/fdfind/find |
 | fzhist | Fuzzy-select a cmd from history, edit in `$EDITOR` and run | sh | fzf/fzy |
 | fzopen | Fuzzy find a file in dir subtree and edit or open | sh | fzf/fzy, xdg-open |
@@ -172,7 +173,7 @@ The `ctxcode` indicates the context to change the active directory of.
 |:---:| --- |
 | `1`-`4` | context number |
 | `0` | current context |
-| `+` | next inactive context or current (if all active) |
+| `+` | smart context (next inactive else current) |
 
 The `opcode` indicates the operation type.
 
diff --git a/plugins/finder b/plugins/finder
new file mode 100755 (executable)
index 0000000..c3b2242
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/env sh
+
+# Description: Run custom search and list results in smart context
+#
+# Note: To enable multi select in fzf, export the following:
+#       - export FZF_DEFAULT_OPTS='--bind ctrl-a:select-all,ctrl-d:deselect-all'
+#
+# Shell: POSIX compliant
+# Author: Arun Prakash jana
+
+. "$(dirname "$0")"/.nnn-plugin-helper
+
+printf "Examples:\n"
+printf "  find . -name \"pattern*\" -print0\n"
+printf "  fd pattern -0\n"
+printf "  find -maxdepth 1 -size +100M -print0\n"
+printf "  fd -d 2 -S +100M -0\n"
+printf "  grep -rlZ pattern\n"
+printf "  rg -l0 pattern\n"
+printf "  fzf -m | tr %s %s\n\n" "'\n'" "'\0'"
+
+printf "cmd: "
+read -r cmd
+
+if ! [ -z "$cmd" ]; then
+    printf "%s" "+l" > "$NNN_PIPE"
+    eval "$cmd" > "$NNN_PIPE"
+fi