zsh-workers
 help / color / mirror / code / Atom feed
From: Jun T <takimoto-j@kba.biglobe.ne.jp>
To: zsh-workers@zsh.org
Subject: [PATCH] _vim: better support for nvim
Date: Thu, 7 Mar 2019 15:46:43 +0900	[thread overview]
Message-ID: <66BBD7E0-4343-4CF2-A55E-B1D4728DBBB1@kba.biglobe.ne.jp> (raw)

Add options specific to nvim, and slightly modify
specs for options -q, -S and -t.


diff --git a/Completion/Unix/Command/_vim b/Completion/Unix/Command/_vim
index 8853fac30..d9dc1a5b3 100644
--- a/Completion/Unix/Command/_vim
+++ b/Completion/Unix/Command/_vim
@@ -19,69 +19,86 @@ typeset -A opt_args
 local arguments
 
 arguments=(
-  '(   -e -E -s -d -y)-v[vi mode]'
-  '(-v    -E    -d -y)-e[ex mode]'
-  '(-v -e       -d -y)-E[improved ex mode]'
-  '(-v -e -E -s -d   )-y[easy mode]'
   '-m[modifications (writing files) not allowed]'
   '-M[modifications in text not allowed]'
   '-b[binary mode]'
   '-l[lisp mode]'
-  '-C[start in compatible mode]'
-  '-N[start in incompatible mode]'
-  '(--nofork -f)'{--nofork,-f}'[do not detach the GUI version from the shell]'
   '-V-[verbosity level]::verbosity [10]:->verbosity'
   '-D[debugging mode]'
   '-n[no swap file (memory only)]'
-  '-nb[start as NetBean server]'
   {-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   )-F[start in Farsi mode]'
-  '-T[set terminal type]:::_terminals'
-  '--not-a-term[skip warning for input/output not being a terminal]'
-  '--ttyfail[exit if input or output is not a terminal]'
   '-u[use given vimrc file instead of default .vimrc]:config:->config'
   "--noplugin[don't 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: '
   '-p-[number of tabs to open (default: one for each file)]::tab count: '
-  '(* -t)-q-[quickfix file]:*:file:_vim_files'
+  '(* -t)-q+[quickfix file]::file:_files'
   '*--cmd[execute given command before loading any RC files]:command: '
   '-c[execute given command after loading the first file]:command: '
-  '-S[source a session file after loading the first file]:session file:_files'
+  '-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, overwriting existing 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-tab[as --remote but open tab page for each file]:*:file:_vim_files'
-  '--remote-tab-silent[as --remote-silent but open tab page for each file]:*:file:_vim_files'
-  '--remote-tab-wait[as --remote-wait but open tab page for each file]:*:file:_vim_files'
-  '--remote-tab-wait-silent[as --remote-wait-silent but open tab page for each file]:*:file:_vim_files'
-  '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
-  '--literal[do not expand wildcards in arguments (this is useless with ZSH)]'
-  '(- *)--serverlist[list available vim servers and exit]'
-  '--servername[name of vim server to send to or name of server to become]:server name:->server'
   '--startuptime[write startup timing messages to given file]:log file:_files'
-  '--socketid[run GVIM in another window]'
-  '-i[use specified viminfo file]:viminfo file [~/.viminfo]:_files'
   '(- *)'{-h,--help}'[print help and exit]'
   '(- *)--version[print version information and exit]'
-  '(* -q)-t[edit file where tag is defined]:tag:_complete_tag'
+  '(* -q)-t+[edit file where tag is defined]:tag:_complete_tag'
   '(-t -q)*:file:_vim_files'
-  '--clean[start with defaults in non-compatible mode]'
 )
-[[ $service != *g* ]] && arguments+='-g[start with GUI]'
+if [[ $service = nvim ]]; then
+  arguments+=(
+    '(-e -E -es -Es -s -d)-e[ex mode, read stdin as ex command]'
+    '(-e -E -es -Es -s -d)-E[ex mode, read stdin as text]'
+    '(-e -E -es -Es -s -d)-es[silent mode, read stdin as ex command]'
+    '(-e -E -es -Es -s -d)-Es[silent mode, read stdin as text]'
+    '-i[use the specified shada file]:shada file:_files'
+    '(- *)-v[print version information and exit]'
+    '(- *)--api-info[print msgpack-encoded api-metadata and exit]'
+    '--headless[do not start user interface]'
+    '--embed[use standard input and output as a msgpack-rpc channel]'
+    '--listen[start RPC server on the specified socket or named pipe]:address'
+  )
+else
+  arguments+=(
+    '(-v    -E    -d -y)-e[ex mode]'
+    '(-v -e       -d -y)-E[improved ex mode]'
+    '(   -e -E -s -d -y)-v[vi mode]'
+    '(-v -e -E -s -d   )-y[easy mode]'
+    '-C[start in compatible mode]'
+    '-N[start in incompatible mode]'
+    '-nb[start as NetBean server]'
+    '-T[set terminal type]:::_terminals'
+    '--not-a-term[skip warning for input/output not being a terminal]'
+    '--ttyfail[exit if input or output is not a terminal]'
+    '-X[do not connect to X server]'
+    '-x[edit encrypted files]'
+    '--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-tab[as --remote but open tab page for each file]:*:file:_vim_files'
+    '--remote-tab-silent[as --remote-silent but open tab page for each file]:*:file:_vim_files'
+    '--remote-tab-wait[as --remote-wait but open tab page for each file]:*:file:_vim_files'
+    '--remote-tab-wait-silent[as --remote-wait-silent but open tab page for each file]:*:file:_vim_files'
+    '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
+    '--literal[do not expand wildcards in arguments (this is useless with ZSH)]'
+    '(- *)--serverlist[list available vim servers and exit]'
+    '--servername[name of vim server to send to or name of server to become]:server name:->server'
+    '--socketid[run GVIM in another window]'
+    '-i[use specified viminfo file]:viminfo file [~/.viminfo]:_files'
+    '--clean[start with defaults in non-compatible mode]'
+  )
+fi
+[[ $service != *g* && $service != nvim ]] && arguments+='-g[start with GUI]'
 [[ $service != r* ]] && arguments+='-Z[restricted mode]'
-[[ $service != *diff ]] && arguments+='(-v -e -E -s -y)-d[diff mode]'
+[[ $service != *diff ]] && arguments+='(-v -e -E -es -Es -s -y)-d[diff mode]'
 [[ $service != *view ]] && arguments+='-R[readonly mode]'
 [[ $service = *g* ]] || (( ${words[(I)-g]} )) && arguments+=(
+  '(--nofork -f)'{--nofork,-f}'[do not detach the GUI version from the shell]'
   '-font:font:_xft_fonts'
   '-geometry:geometry:_x_geometry'
   '(-rv -reverse)'{-rv,-reverse}'[use reverse video]'


                 reply	other threads:[~2019-03-07  6:47 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=66BBD7E0-4343-4CF2-A55E-B1D4728DBBB1@kba.biglobe.ne.jp \
    --to=takimoto-j@kba.biglobe.ne.jp \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).