# Dumb terminals lack support. if [[ "$TERM" == 'dumb' ]]; then return fi unsetopt menu_complete # Do not autoselect the first completion entry. unsetopt flow_control # Disable start/stop characters in shell editor. setopt auto_menu # Show completion menu on a succesive tab press. setopt complete_in_word # Complete from both ends of a word. setopt always_to_end # Move cursor to the end of a completed word. WORDCHARS='' # FIXME: complist is crashing ZSH on menu completion. # zmodload -i zsh/complist ## Case-insensitive (all), partial-word, and then substring completion. if [[ "$CASE_SENSITIVE" == "true" ]]; 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 '' # FIXME: It depends on complist which crashes ZSH on menu completion. # Should this be in key-bindings.zsh? # bindkey -M menuselect '^o' accept-and-infer-next-history zstyle ':completion:*:*:*:*:*' menu select 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" # Disable named-directories autocompletion. zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories cdpath=(.) # Use /etc/hosts and known_hosts for hostname completion. [ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=() [ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(