about summary refs log tree commit diff
path: root/Completion/Unix/Command/_vim
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2005-07-07 11:15:46 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2005-07-07 11:15:46 +0000
commita032b627894660c9f1076019e29c1243ff72497a (patch)
tree82576e8f00821ccbfbdd8df4e74a7282fe6e40ea /Completion/Unix/Command/_vim
parent75f853f2e309bd2ed98209eb64b47ca2bdcf46fb (diff)
downloadzsh-a032b627894660c9f1076019e29c1243ff72497a.tar.gz
zsh-a032b627894660c9f1076019e29c1243ff72497a.tar.xz
zsh-a032b627894660c9f1076019e29c1243ff72497a.zip
Nikolai Weibull: new _vim completion
Diffstat (limited to 'Completion/Unix/Command/_vim')
-rw-r--r--Completion/Unix/Command/_vim74
1 files changed, 74 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_vim b/Completion/Unix/Command/_vim
new file mode 100644
index 000000000..81af64546
--- /dev/null
+++ b/Completion/Unix/Command/_vim
@@ -0,0 +1,74 @@
+#compdef vim
+
+_vim_files () {
+  if [[ $(echo $PREFIX*(N)) == '' ]]; then
+    case $PREFIX in
+      (+) _message -e 'start at a given line (default: end of file)' ;;
+      (+<1->) _message -e 'line number' ;;
+    esac
+  fi
+  case $PREFIX in
+    (+*) _files -P './' $* ;;
+    (*) _files $* ;;
+  esac
+}
+
+local arguments
+
+arguments=(
+  '(   -e -s -d -y)-v[vi mode]'
+  '(-v       -d -y)-e[ex mode]'
+  '(-v -e -s    -y)-d[diff mode]'
+  '(-v -e -s -d   )-y[easy mode]'
+  '-R[readonly mode]'
+  '-Z[restricted mode]'
+  '-m[modifications (writing files) not allowed]'
+  '-M[modifications in text not allowed]'
+  '-b[binary mode]'
+  '-l[lisp mode]'
+  '-C[make vim compatible with vi]'
+  '-N[do not force compatibility with vi]'
+  '-V-[verbosity level]::verbosity:((0\:"do not display any messages"
+                                     1\:"display when viminfo file is read or written"
+                                     2\:"display sourced files"
+                                     5\:"display every searched tag-file"
+                                     8\:"display files that trigger autocommands"
+                                     9\:"display every triggered autocommand (default)"
+                                    12\:"display every executed function"
+                                    13\:"report every thrown, caught, finished, or discarded exception"
+                                    14\:"display anything pending in a \:finally clause"
+                                    15\:"display every executed ex-command"))'
+  '-D[debugging mode]'
+  '-n[no swap file (memory only)]'
+  {-r,-L}'[list swap files and exit or recover from a swap file]::swap file:_vim_files -g \*.sw\?'
+  '(   -H -F)-A[start in Arabic mode]'
+  '(-A    -F)-H[start in Hebrew mode]'
+  '(-A -H   )-H[start in Farsi mode]'
+  '-T[set terminal type]:::_terminals'
+  '-u[use given RC file instead of default .vimrc]::rc file:_files'
+  '--noplugin[do not load plugin scripts]'
+  '-o-[number of windows to open (default: one for each file)]::window count: '
+  '-O-[number of windows to vertically split open (default is one for each file)]::window count: '
+  '*--cmd[execute given command before loading any RC files]:command: '
+  '-c[executed given command after loading the first file]:command: '
+  '-S[source a session file after loading the first file]:session file:_files'
+  '-s[read normal-mode commands from script file]:script file:_files'
+  '-w[append all typed commands to given file]:output file:_files'
+  '-W[write all typed commands to given file]:output file:_files'
+  '-x[edit encrypted files]'
+  '-X[do not connect to X server]'
+  '--remote[edit given files in a vim server if possible]:*:file:_vim_files'
+  '--remote-silent[as --remote but without complaining if not possible]:*:file:_vim_files'
+  '--remote-wait[as --remote but wait for files to have been edited]:*:file:_vim_files'
+  '--remote-wait-silent[as --remote-wait but without complaining if not possible]:*:file:_vim_files'
+  '--remote-send[send given keys to vim server if possible]:keys: '
+  '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
+  '(- *)--serverlist[list available vim servers and exit]'
+  '--servername[name of vim server to send to or name of server to become]:server name: '
+  '-i[use given viminfo file instead of default .viminfo]:viminfo file:_files'
+  '(- *)'{-h,--help}'[print help and exit]'
+  '(- *)--version[print version information and exit]'
+  '*:file:_vim_files'
+)
+
+_arguments -S $arguments