my dotfiles
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(zsh): add completion and syntax highlighting plugins for enhanced shell experience

theMackabu 3ce4491a 78d8ef9c

+78
+78
plugins/completion/completion.zsh
··· 1 + # fixme - the load process here seems a bit bizarre 2 + zmodload -i zsh/complist 3 + 4 + WORDCHARS='' 5 + 6 + unsetopt menu_complete # do not autoselect the first completion entry 7 + unsetopt flowcontrol 8 + setopt auto_menu # show completion menu on successive tab press 9 + setopt complete_in_word 10 + setopt always_to_end 11 + 12 + # should this be in keybindings? 13 + bindkey -M menuselect '^o' accept-and-infer-next-history 14 + zstyle ':completion:*:*:*:*:*' menu select 15 + 16 + # case insensitive (all), partial-word and substring completion 17 + if [[ "$CASE_SENSITIVE" = true ]]; then 18 + zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*' 19 + else 20 + if [[ "$HYPHEN_INSENSITIVE" = true ]]; then 21 + zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}' 'r:|=*' 'l:|=* r:|=*' 22 + else 23 + zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|=*' 'l:|=* r:|=*' 24 + fi 25 + fi 26 + unset CASE_SENSITIVE HYPHEN_INSENSITIVE 27 + 28 + # Complete . and .. special directories 29 + zstyle ':completion:*' special-dirs true 30 + 31 + zstyle ':completion:*' list-colors '' 32 + zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' 33 + 34 + if [[ "$OSTYPE" = solaris* ]]; then 35 + zstyle ':completion:*:*:*:*:processes' command "ps -u $USERNAME -o pid,user,comm" 36 + else 37 + zstyle ':completion:*:*:*:*:processes' command "ps -u $USERNAME -o pid,user,comm -w -w" 38 + fi 39 + 40 + # disable named-directories autocompletion 41 + zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories 42 + 43 + # Use caching so that commands like apt and dpkg complete are useable 44 + zstyle ':completion:*' use-cache yes 45 + zstyle ':completion:*' cache-path $ZSH_CACHE_DIR 46 + 47 + # Don't complete uninteresting users 48 + zstyle ':completion:*:*:*:users' ignored-patterns \ 49 + adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \ 50 + clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \ 51 + gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \ 52 + ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \ 53 + named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \ 54 + operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \ 55 + rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \ 56 + usbmux uucp vcsa wwwrun xfs '_*' 57 + 58 + # ... unless we really want to. 59 + zstyle '*' single-ignored show 60 + 61 + if [[ ${COMPLETION_WAITING_DOTS:-false} != false ]]; then 62 + expand-or-complete-with-dots() { 63 + # use $COMPLETION_WAITING_DOTS either as toggle or as the sequence to show 64 + [[ $COMPLETION_WAITING_DOTS = true ]] && COMPLETION_WAITING_DOTS="%F{red}…%f" 65 + # turn off line wrapping and print prompt-expanded "dot" sequence 66 + printf '\e[?7l%s\e[?7h' "${(%)COMPLETION_WAITING_DOTS}" 67 + zle expand-or-complete 68 + zle redisplay 69 + } 70 + zle -N expand-or-complete-with-dots 71 + # Set the function as the default tab completion widget 72 + bindkey -M emacs "^I" expand-or-complete-with-dots 73 + bindkey -M viins "^I" expand-or-complete-with-dots 74 + bindkey -M vicmd "^I" expand-or-complete-with-dots 75 + fi 76 + 77 + # automatically load bash completion functions 78 + autoload -U +X bashcompinit && bashcompinit