about summary refs log tree commit diff
path: root/Completion/Unix/Command/_sh
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_sh')
-rw-r--r--Completion/Unix/Command/_sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_sh b/Completion/Unix/Command/_sh
new file mode 100644
index 000000000..cc2139d7f
--- /dev/null
+++ b/Completion/Unix/Command/_sh
@@ -0,0 +1,15 @@
+#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
+    _alternative \
+      'files:file:_files' \
+      'commands:command:_normal' && return 0
+  fi
+  _default
+fi