From b5e62d7ceb3c18b7c62df472e77f4c0262f196a7 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sat, 5 Jan 2019 10:57:11 +0530 Subject: [PATCH] Document picker behaviour --- README.md | 10 ++++++++++ scripts/user-scripts/copier.sh | 5 +++++ scripts/user-scripts/picker.sh | 9 ++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f9dcea14..e6a72c73 100644 --- a/README.md +++ b/README.md @@ -465,6 +465,16 @@ As you might notice, `nnn` uses the environment variable `NNN_TMPFILE` to write To use `nnn` as a file picker and redirect the output to other programs, use [picker.sh](https://github.com/jarun/nnn/blob/master/scripts/user-scripts/picker.sh). +Ways to pick files: + +- use selection and press q to quit +- press Enter to pick any earlier selection and the current entry (to avoid selecting the last file in the selection twice, press q instead). + +Notes: + +- pressing Enter on a directory enters it; when trying to pick a directory, e.g. to pipe to `cd`, use single file selection and press q +- to discard selection and quit, press ^G + #### run custom scripts `nnn` can invoke custom scripts with the currently selected file name as argument 1. diff --git a/scripts/user-scripts/copier.sh b/scripts/user-scripts/copier.sh index 391770cb..a99b88bb 100755 --- a/scripts/user-scripts/copier.sh +++ b/scripts/user-scripts/copier.sh @@ -1,5 +1,10 @@ #!/usr/bin/env sh +# Description: Copy selection to clipboard +# +# Shell: generic +# Author: Arun Prakash Jana + # Linux cat ~/.nnncp | xargs -0 | xsel -bi diff --git a/scripts/user-scripts/picker.sh b/scripts/user-scripts/picker.sh index 8885ed6b..e69159e7 100644 --- a/scripts/user-scripts/picker.sh +++ b/scripts/user-scripts/picker.sh @@ -2,7 +2,7 @@ # Description: Pick files and pipe the line-separated list to another utility # -# Shell: sh +# Shell: generic # Author: Arun Prakash Jana # # Usage: @@ -17,5 +17,8 @@ # NOTE: This use case is limited to picking files, other functionality may not work as expected. nnn -p /tmp/picked -cat /tmp/picked | tr '\0' '\n' -rm /tmp/picked + +if [ -f /tmp/picked ]; then + cat /tmp/picked | tr '\0' '\n' + rm /tmp/picked +fi