Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Adding a prefix to certain filename completions
- X-seq: zsh-users 9042
- From: Nikolai Weibull <mailing-lists.zsh-users@xxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: Adding a prefix to certain filename completions
- Date: Thu, 7 Jul 2005 04:02:10 +0200
- In-reply-to: <20050706113154.GA5313@xxxxxxxxxxxxxxxx>
- Mail-followup-to: zsh-users@xxxxxxxxxx
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20050705172846.GB5362@xxxxxxxxxxxxxxxx> <20050704193711.GF6330@xxxxxxxxxxxxxxxx> <20050705042324.GA21301@xxxxxxxxxxxxxxxxx> <20050705080946.GC5333@xxxxxxxxxxxxxxxx> <Pine.OSX.4.58.0507050720380.17349@xxxxxxxxxxxxxxx> <20050705172846.GB5362@xxxxxxxxxxxxxxxx> <1050706050022.ZM13972@xxxxxxxxxxxxxxxxxxxxxxx> <20050706113154.GA5313@xxxxxxxxxxxxxxxx>
Nikolai Weibull wrote:
> Ah, that’s great!  I’ll try to find some time today to actually write a
> complete _vim completion.
OK, so it’s sad that I can only find spare time at 2 am, but here it is,
a quite complete Vim completion defintion.  There’s a problem with the
+<n> option, though.  I couldn’t figure out a proper way of escaping the
+ that is the options name (just using \+ doesn’t work).  Anyone have
any brilliant ideas on this, or is this a problem with the _arguments
argument-parser?
Anyway, enjoy,
        nikolai
-- 
Nikolai Weibull: now available free of charge at http://bitwi.se/!
Born in Chicago, IL USA; currently residing in Gothenburg, Sweden.
main(){printf(&linux["\021%six\012\0"],(linux)["have"]+"fun"-97);}
#compdef vim
_my_files () {
  [[ $PREFIX == +* ]] && _files -P './' $* || _files $*
}
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:_my_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: '
#  '\+-[start at given line (default: end of file)]::line number: '
  '*--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:_my_files'
  '--remote-silent[as --remote but without complaining if not possible]:*:file:_my_files'
  '--remote-wait[as --remote but wait for files to have been edited]:*:file:_my_files'
  '--remote-wait-silent[as --remote-wait but without complaining if not possible]:*:file:_my_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:_my_files'
)
_arguments -S $arguments
Messages sorted by:
Reverse Date,
Date,
Thread,
Author