summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_python
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_python')
-rw-r--r--Completion/Unix/Command/_python42
1 files changed, 27 insertions, 15 deletions
diff --git a/Completion/Unix/Command/_python b/Completion/Unix/Command/_python
index ca1ed37fd..8e32bdf55 100644
--- a/Completion/Unix/Command/_python
+++ b/Completion/Unix/Command/_python
@@ -1,7 +1,7 @@
-#compdef python
+#compdef python python2 python2.4 python2.5 python2.6 python2.7 python3.0 python3.1 python3.2 python3.3 python3.4
-# Python 2.6
-# Python 3.0
+# Python 2.7
+# Python 3.4
local curcontext="$curcontext" state line expl
typeset -A opt_args
@@ -12,9 +12,12 @@ if _pick_variant python3=Python\ 3 python2 --version; then
args=(
'(-bb)-b[issue warnings about str(bytes_instance), str(bytearray_instance) and comparing bytes/bytearray with str]'
'(-b)-bb[issue errors about str(bytes_instance), str(bytearray_instance) and comparing bytes/bytearray with str]'
+ "-I[isolate Python from the user's environment]"
+ '-X[set implementation-specific option]:option'
)
else
args=(
+ '-R[use a pseudo-random salt to make hash values unpredeictable]'
'-Q+[division options]:division option:(old warn warnall new)'
'(-tt)-t[issue warnings about inconsistent tab usage]'
'(-t)-tt[issue errors about inconsistent tab usage]'
@@ -24,12 +27,12 @@ fi
_arguments -C -s -S "$args[@]" \
"-B[don't write .py\[co\] files on import]" \
- '(1 -)-c+[program passed in as string (terminates option list)]:python command:' \
+ '(1 -)-c+[program passed in as string (terminates option list)]:python command' \
'-d[debug output from parser]' \
'-E[ignore PYTHON* environment variables (such as PYTHONPATH)]' \
'(1 * -)-h[display help information]' \
'-i[inspect interactively after running script]' \
- '(1 * -)-m[run library module as a script (terminates option list)]:module:->modules' \
+ '(1 -)-m[run library module as a script (terminates option list)]:module:->modules' \
'-O[optimize generated bytecode slightly]' \
'-OO[remove doc-strings in addition to the -O optimizations]' \
"-s[don't add user site directory to sys.path]" \
@@ -39,16 +42,25 @@ _arguments -C -s -S "$args[@]" \
'(1 * -)-V[display version information]' \
'-W+[warning control]:warning filter (action\:message\:category\:module\:lineno):(default always ignore module once error)' \
'-x[skip first line of source, allowing use of non-Unix forms of #!cmd]' \
- '(-)1:script file:_files -g "*.py(|c|o)(-.)"' \
- '*::script argument: _normal' && return
+ '(-)1:Python script:_files -g "*.py(|c|o)(-.)"' \
+ '*::script argument:= ->normal' && return
-if [[ "$state" = modules ]]; then
- local -a modules
- modules=(
- ${${=${(f)"$(_call_program modules $words[1] -c \
- 'from\ pydoc\ import\ help\;\ help\(\"modules\"\)')"}[2,-3]}:#\(package\)}
- )
- _wanted modules expl module compadd -a modules && return
-fi
+case "$state" in
+ modules)
+ local -a modules
+ modules=(
+ ${${=${(f)"$(_call_program modules $words[1] -c \
+ 'from\ pydoc\ import\ help\;\ help\(\"modules\"\)')"}[2,-3]}:#\(package\)}
+ )
+ _wanted modules expl module compadd -a modules && return
+ ;;
+ normal)
+ if [[ -z "$opt_args[(I)-(c|m)]" ]]; then
+ shift words
+ (( CURRENT-- ))
+ fi
+ _normal && return
+ ;;
+esac
return 1