aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2017-09-02 12:23:19 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2017-09-02 12:23:19 +0530
commit564eafbeb333bd5b81e4ecb46cd798a21544d852 (patch)
treebf6fa36db9945a0685124d38f837870439d0ccc2
parent277cf66097209b0f56312e11a82dd3db437df1a0 (diff)
downloadnnn-564eafbeb333bd5b81e4ecb46cd798a21544d852.tar.gz
Add auto-completion scripts
-rw-r--r--README.md5
-rw-r--r--scripts/auto-completion/bash/nnn-completion.bash41
-rw-r--r--scripts/auto-completion/fish/nnn.fish15
-rw-r--r--scripts/auto-completion/zsh/_nnn22
4 files changed, 83 insertions, 0 deletions
diff --git a/README.md b/README.md
index 00ffcb8..cc9e608 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,7 @@ Noice is Not Noice, a noicer fork...
- [From a package manager](#from-a-package-manager)
- [Release packages](#release-packages)
- [From source](#from-source)
+- [Shell completion](#shell-completion)
- [Usage](#usage)
- [Cmdline options](#cmdline-options)
- [Keyboard shortcuts](#keyboard-shortcuts)
@@ -160,6 +161,10 @@ To cook yourself, download the [latest stable release](https://github.com/jarun/
`PREFIX` is supported, in case you want to install to a different location.
+### Shell completion
+
+Search keyword and option completion scripts for Bash, Fish and Zsh can be found in respective subdirectories of [`scripts/auto-completion/`](scripts/auto-completion). Please refer to your shell's manual for installation instructions.
+
### Usage
#### Cmdline options
diff --git a/scripts/auto-completion/bash/nnn-completion.bash b/scripts/auto-completion/bash/nnn-completion.bash
new file mode 100644
index 0000000..b16b296
--- /dev/null
+++ b/scripts/auto-completion/bash/nnn-completion.bash
@@ -0,0 +1,41 @@
+#
+# Rudimentary Bash completion definition for nnn.
+#
+# Author:
+# Arun Prakash Jana <engineerarun@gmail.com>
+#
+
+_nnn () {
+ COMPREPLY=()
+ local IFS=$' \n'
+ local cur=$2 prev=$3
+ local -a opts opts_with_args
+ opts=(
+ -c
+ -e
+ -h
+ -i
+ -l
+ -p
+ -S
+ -v
+ )
+ opts_with_arg=(
+ -c
+ -p
+ )
+
+ # Do not complete non option names
+ [[ $cur == -* ]] || return 1
+
+ # Do not complete when the previous arg is an option expecting an argument
+ for opt in "${opts_with_arg[@]}"; do
+ [[ $opt == $prev ]] && return 1
+ done
+
+ # Complete option names
+ COMPREPLY=( $(compgen -W "${opts[*]}" -- "$cur") )
+ return 0
+}
+
+complete -F _nnn nnn
diff --git a/scripts/auto-completion/fish/nnn.fish b/scripts/auto-completion/fish/nnn.fish
new file mode 100644
index 0000000..2eebc48
--- /dev/null
+++ b/scripts/auto-completion/fish/nnn.fish
@@ -0,0 +1,15 @@
+#
+# Fish completion definition for nnn.
+#
+# Author:
+# Arun Prakash Jana <engineerarun@gmail.com>
+#
+
+complete -c nnn -s c -r -d 'specify dir color, disables if N>7'
+complete -c nnn -s e -d 'use exiftool instead of mediainfo'
+complete -c nnn -s h -d 'show this help and exit'
+complete -c nnn -s i -d 'start in navigate-as-you-type mode'
+complete -c nnn -s l -d 'start in light mode (fewer details)'
+complete -c nnn -s p -r -d 'specify custom nlay'
+complete -c nnn -s S -d 'start in disk usage analyzer mode'
+complete -c nnn -s v -d 'show program version and exit'
diff --git a/scripts/auto-completion/zsh/_nnn b/scripts/auto-completion/zsh/_nnn
new file mode 100644
index 0000000..8dfe053
--- /dev/null
+++ b/scripts/auto-completion/zsh/_nnn
@@ -0,0 +1,22 @@
+#compdef nnn
+#
+# Completion definition for nnn.
+#
+# Author:
+# Arun Prakash Jana <engineerarun@gmail.com>
+#
+
+setopt localoptions noshwordsplit noksharrays
+local -a args
+args=(
+ '(-c)-c[specify dir color, disables if N>7]:color code'
+ '(-e)-e[use exiftool instead of mediainfo]'
+ '(-h)-h[show this help and exit]'
+ '(-i)-i[start in navigate-as-you-type mode]'
+ '(-l)-l[start in light mode (fewer details)]'
+ '(-p)-p[specify custom nlay]:path to nlay'
+ '(-S)-S[start in disk usage analyzer mode]'
+ '(-v)-v[show program version and exit]'
+ '*: :_guard "^-*" keyword'
+)
+_arguments -S -s $args