about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/Unix/Command/_sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_sh b/Completion/Unix/Command/_sh
new file mode 100644
index 000000000..22379856e
--- /dev/null
+++ b/Completion/Unix/Command/_sh
@@ -0,0 +1,13 @@
+#compdef sh ksh bash zsh csh tcsh rc
+
+if (( CURRENT == ${words[(i)-c]} + 1 )); then
+  compset -q
+  _normal
+else
+  local n=${words[(b:2:i)[^-]*]}
+  if (( n <= CURRENT )); then
+    compset -n $n
+    _normal && return 0
+  fi
+  _default
+fi