summaryrefslogtreecommitdiffstats
path: root/.zsh/rc/70completion/10misc
blob: e0fdffe39f6e21ff3f7b622b25c2c08cf1dcf349 (plain)
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
48
49
#--------------------
# Completion stuff
#--------------------
autoload -Uz compinit
compinit

# correct 7etc/foo to /etc/foo
# if anyone has a working solution for /etc7foo please contact me
function _7slash {
   if [[ $words[CURRENT] = 7(#b)(*)(#e) ]]
   then
     compadd -U -X 'Correct leading 7 to /' -f /$match[1]
   fi
}

zstyle :compinstall filename '$HOME/.zshrc'

# cache results because yaourt is slow
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path $HOME/.zsh/cache
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' completer _complete _match _approximate _7slash 
zstyle ':completion:*:match:*' original only

# allow more mistypes if longer command
zstyle -e ':completion:*:approximate:*' \
        max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'

# ignore completion for commands we don't have
zstyle ':completion:*:functions' ignored-patterns '_*'

# show menu when tabbing
zstyle ':completion:*' menu yes select
zstyle ':completion:*' file-sort time

# remove / after dirnames 
# e.g. ls foo/ -> ls foo
#zstyle ':completion:*' squeeze-slashes true
zstyle ':completion:*' squeeze-slashes false

# if in foo/bar don't show bar when cd ../<TAB>
zstyle ':completion:*:cd:*' ignore-parents parent pwd

# ignore case when completing
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

# make some stuff look better
zstyle ':completion:*:descriptions'    format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}'
zstyle ':completion:*:warnings'        format $'%{\e[0;31m%}No matches for:%{\e[0m%} %d'