9ec6086282
The key here is not using MENU_COMPLETE which autoselects the first entry, but using AUTO_MENU which displays the menu but autoselects on successive tab hit. Also, do not use zstyle menu yes because that somehow overrides the setopts.
46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
## fixme - the load process here seems a bit bizarre
|
|
|
|
unsetopt menu_complete # do not autoselect the first completion entry
|
|
unsetopt flowcontrol
|
|
setopt auto_menu # show completion menu on succesive tab press
|
|
setopt complete_in_word
|
|
setopt always_to_end
|
|
|
|
WORDCHARS=''
|
|
|
|
autoload -U compinit
|
|
compinit
|
|
|
|
zmodload -i zsh/complist
|
|
|
|
## case-insensitive (all),partial-word and then substring completion
|
|
if [ "x$CASE_SENSITIVE" = "xtrue" ]; then
|
|
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
unset CASE_SENSITIVE
|
|
else
|
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
fi
|
|
|
|
zstyle ':completion:*' list-colors ''
|
|
|
|
# should this be in keybindings?
|
|
bindkey -M menuselect '^o' accept-and-infer-next-history
|
|
|
|
zstyle ':completion:*:*:*:*:*' menu select
|
|
# zstyle ':completion:*:*:*:*:processes' force-list always
|
|
|
|
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
|
zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w"
|
|
|
|
# Load known hosts file for auto-completion with ssh and scp commands
|
|
if [ -f ~/.ssh/known_hosts ]; then
|
|
zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
|
|
zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
|
|
fi
|
|
|
|
# Complete on history
|
|
#zstyle ':completion:*:history-words' stop yes
|
|
#zstyle ':completion:*:history-words' remove-all-dups yes
|
|
#zstyle ':completion:*:history-words' list false
|
|
#zstyle ':completion:*:history-words' menu yes
|