about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorMatthew Martin <phy1729@gmail.com>2020-05-17 15:16:18 -0500
committerMatthew Martin <phy1729@gmail.com>2020-05-17 15:18:26 -0500
commit53052335b920a7e62de409119e24291181b1ae86 (patch)
tree0144743e126a1be8a1a1df2350738c22fc201a38 /Completion
parent7c2a740d0f20fee3b953f6738f27b8339dd97d91 (diff)
downloadzsh-53052335b920a7e62de409119e24291181b1ae86.tar.gz
zsh-53052335b920a7e62de409119e24291181b1ae86.tar.xz
zsh-53052335b920a7e62de409119e24291181b1ae86.zip
45831: Add _vi completer
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_vi47
1 files changed, 47 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_vi b/Completion/Unix/Command/_vi
new file mode 100644
index 000000000..6201299a2
--- /dev/null
+++ b/Completion/Unix/Command/_vi
@@ -0,0 +1,47 @@
+#compdef ex vi view
+
+local -a args
+
+if _pick_variant vim='(N|)VIM' vi --version; then
+  _vim
+  return
+fi
+
+args=(
+  '-c+[execute command on the first file loaded]:command:'
+  '-r[recover the named files]'
+  '-t+[start editing at the specified tag]:tag:'
+  '-w+[set window size to specified number of lines]:lines:'
+  '*: :_files'
+)
+
+[[ $service != view ]] && args+=(
+  '-R[set readonly]'
+)
+
+[[ $service == ex ]] && args+=(
+  '-s[enter batch mode]'
+  '-v[start in vi mode]'
+)
+
+case $OSTYPE in
+  *bsd*|dragonfly*)
+    args+=(
+      "-F[don't copy the entire file on start]"
+      '-S[set the secure option]'
+    )
+    [[ $service != ex ]] && args+=(
+      '-e[start in ex mode]'
+    )
+    ;|
+  netbsd*)
+    args+=(
+      '-G[start in gtags mode]'
+    )
+    [[ $service == vi ]] && args+=(
+      '-l[set the lisp and showmatch options]'
+    )
+    ;;
+esac
+
+_arguments -s -S -A '-*' : $args