summary refs log tree commit diff
path: root/Completion/Unix/Command/_vi
blob: 6201299a2677809b96dc9ddd2c441de817f3b49b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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