mirror of
https://github.com/jarun/nnn.git
synced 2025-01-15 13:26:37 +00:00
Merge pull request #1588 from N-R-K/prefer_sel
nmv: prefer selection if -u is active
This commit is contained in:
commit
f1c85b977a
15
plugins/.nmv
15
plugins/.nmv
|
@ -17,6 +17,9 @@
|
||||||
# Shell: bash
|
# Shell: bash
|
||||||
# Author: KlzXS
|
# Author: KlzXS
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090,SC1091
|
||||||
|
. "$(dirname "$0")"/.nnn-plugin-helper
|
||||||
|
|
||||||
EDITOR="${EDITOR:-vi}"
|
EDITOR="${EDITOR:-vi}"
|
||||||
TMPDIR="${TMPDIR:-/tmp}"
|
TMPDIR="${TMPDIR:-/tmp}"
|
||||||
NNN_INCLUDE_HIDDEN="${NNN_INCLUDE_HIDDEN:-0}"
|
NNN_INCLUDE_HIDDEN="${NNN_INCLUDE_HIDDEN:-0}"
|
||||||
|
@ -32,21 +35,11 @@ case "$NNN_TRASH" in
|
||||||
RM_UTIL="rm -ri" ;;
|
RM_UTIL="rm -ri" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
|
|
||||||
exit_status=0
|
exit_status=0
|
||||||
|
|
||||||
dst_file=$(mktemp "$TMPDIR/.nnnXXXXXX")
|
dst_file=$(mktemp "$TMPDIR/.nnnXXXXXX")
|
||||||
|
|
||||||
if [ -s "$selection" ]; then
|
if nnn_use_selection "Rename"; then
|
||||||
printf "Rename 'c'urrent / 's'election? "
|
|
||||||
read -r resp
|
|
||||||
|
|
||||||
if ! [ "$resp" = "c" ] && ! [ "$resp" = "s" ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$resp" = "s" ]; then
|
|
||||||
arr=$(tr '\0' '\n' < "$selection")
|
arr=$(tr '\0' '\n' < "$selection")
|
||||||
else
|
else
|
||||||
findcmd="find . ! -name ."
|
findcmd="find . ! -name ."
|
||||||
|
|
|
@ -12,6 +12,9 @@ export selection
|
||||||
CUR_CTX=0
|
CUR_CTX=0
|
||||||
export CUR_CTX
|
export CUR_CTX
|
||||||
|
|
||||||
|
NNN_PREFER_SELECTION="${NNN_PREFER_SELECTION:-0}"
|
||||||
|
export NNN_PREFER_SELECTION
|
||||||
|
|
||||||
## Ask nnn to switch to directory $1 in context $2.
|
## Ask nnn to switch to directory $1 in context $2.
|
||||||
## If $2 is not provided, the function asks explicitly.
|
## If $2 is not provided, the function asks explicitly.
|
||||||
nnn_cd () {
|
nnn_cd () {
|
||||||
|
@ -36,3 +39,23 @@ cmd_exists () {
|
||||||
type "$1" > /dev/null 2>&1
|
type "$1" > /dev/null 2>&1
|
||||||
echo $?
|
echo $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nnn_use_selection() {
|
||||||
|
if ! [ -s "$selection" ]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NNN_PREFER_SELECTION" -eq 1 ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
[ -n "$1" ] && printf "$1 "
|
||||||
|
printf "(s)election/(c)urrent? [default=c] "
|
||||||
|
read -r resp__
|
||||||
|
|
||||||
|
if [ "$resp__" = "s" ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
@ -212,6 +212,7 @@ When `nnn` executes a plugin, it does the following:
|
||||||
3. `$3`: The picker mode output file (`-` for stdout) if `nnn` is executed as a file picker.
|
3. `$3`: The picker mode output file (`-` for stdout) if `nnn` is executed as a file picker.
|
||||||
- Sets the environment variable `NNN_PIPE` used to control `nnn` active directory.
|
- Sets the environment variable `NNN_PIPE` used to control `nnn` active directory.
|
||||||
- Sets the environment variable `NNN_INCLUDE_HIDDEN` to `1` if hidden files are active, `0` otherwise.
|
- Sets the environment variable `NNN_INCLUDE_HIDDEN` to `1` if hidden files are active, `0` otherwise.
|
||||||
|
- Sets the environment variable `NNN_PREFER_SELECTION` to `1` if user prefers to use selection (see nnn's `-u` flag), `0` otherwise.
|
||||||
- Exports the [special variables](https://github.com/jarun/nnn/wiki/Concepts#special-variables).
|
- Exports the [special variables](https://github.com/jarun/nnn/wiki/Concepts#special-variables).
|
||||||
|
|
||||||
Plugins can also read the `.selection` file in the config directory.
|
Plugins can also read the `.selection` file in the config directory.
|
||||||
|
|
18
plugins/gpge
18
plugins/gpge
|
@ -10,7 +10,8 @@
|
||||||
# Shell: POSIX compliant
|
# Shell: POSIX compliant
|
||||||
# Author: KlzXS
|
# Author: KlzXS
|
||||||
|
|
||||||
selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
|
# shellcheck disable=SC1090,SC1091
|
||||||
|
. "$(dirname "$0")"/.nnn-plugin-helper
|
||||||
|
|
||||||
printf "(s)ymmetric, (a)symmetric? [default=a] "
|
printf "(s)ymmetric, (a)symmetric? [default=a] "
|
||||||
read -r symmetry
|
read -r symmetry
|
||||||
|
@ -18,12 +19,11 @@ read -r symmetry
|
||||||
if [ "$symmetry" = "s" ]; then
|
if [ "$symmetry" = "s" ]; then
|
||||||
gpg --symmetric "$1"
|
gpg --symmetric "$1"
|
||||||
else
|
else
|
||||||
printf "(s)election/(c)urrent? [default=c] "
|
if nnn_use_selection; then
|
||||||
read -r resp
|
clear_sel=1
|
||||||
|
|
||||||
if [ "$resp" = "s" ]; then
|
|
||||||
files=$(tr '\0' '\n' < "$selection")
|
files=$(tr '\0' '\n' < "$selection")
|
||||||
else
|
else
|
||||||
|
clear_sel=0
|
||||||
files=$1
|
files=$1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ else
|
||||||
|
|
||||||
printf "%s" "$files" | xargs -n1 gpg --encrypt --recipient "$recipient"
|
printf "%s" "$files" | xargs -n1 gpg --encrypt --recipient "$recipient"
|
||||||
|
|
||||||
# Clear selection
|
# Clear selection
|
||||||
if [ "$resp" = "s" ] && [ -p "$NNN_PIPE" ]; then
|
if [ "$clear_sel" -eq 1 ] && [ -p "$NNN_PIPE" ]; then
|
||||||
printf "-" > "$NNN_PIPE"
|
printf "-" > "$NNN_PIPE"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -5174,6 +5174,7 @@ static void setexports(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setenv("NNN_INCLUDE_HIDDEN", xitoa(cfg.showhidden), 1);
|
setenv("NNN_INCLUDE_HIDDEN", xitoa(cfg.showhidden), 1);
|
||||||
|
setenv("NNN_PREFER_SELECTION", xitoa(cfg.prefersel), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void run_cmd_as_plugin(const char *file, uchar_t flags)
|
static void run_cmd_as_plugin(const char *file, uchar_t flags)
|
||||||
|
@ -7368,6 +7369,7 @@ nochange:
|
||||||
case SEL_RENAMEMUL:
|
case SEL_RENAMEMUL:
|
||||||
endselection(TRUE);
|
endselection(TRUE);
|
||||||
setenv("NNN_INCLUDE_HIDDEN", xitoa(cfg.showhidden), 1);
|
setenv("NNN_INCLUDE_HIDDEN", xitoa(cfg.showhidden), 1);
|
||||||
|
setenv("NNN_PREFER_SELECTION", xitoa(cfg.prefersel), 1);
|
||||||
setenv("NNN_LIST", listpath ? listroot : "", 1);
|
setenv("NNN_LIST", listpath ? listroot : "", 1);
|
||||||
|
|
||||||
if (!(getutil(utils[UTIL_BASH])
|
if (!(getutil(utils[UTIL_BASH])
|
||||||
|
|
Loading…
Reference in a new issue