69 lines
3.9 KiB
Plaintext
69 lines
3.9 KiB
Plaintext
# set the terminal mode when entering or exiting zle, otherwise terminfo keys are not loaded
|
|
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
|
zle-line-init() { echoti smkx; }; zle -N zle-line-init
|
|
zle-line-finish() { echoti rmkx; }; zle -N zle-line-finish
|
|
fi
|
|
|
|
# History
|
|
zshAddHistory() {
|
|
whence ${${(z)1}[1]} >| /dev/null || return 1
|
|
}
|
|
|
|
# ---| Correction and Autocompletion |--- #
|
|
zstyle ':completion:*:correct:*' original true
|
|
zstyle ':completion:*:correct:*' insert-unambiguous true
|
|
zstyle ':completion:*:approximate:*' max-errors 'reply=($(( ($#PREFIX + $#SUFFIX) / 3 )) numeric)'
|
|
|
|
# completion
|
|
zstyle ':completion:*' use-cache on
|
|
zstyle ':completion:*' cache-path "$comppath"
|
|
zstyle ':completion:*' rehash true
|
|
zstyle ':completion:*' verbose true
|
|
zstyle ':completion:*' insert-tab false
|
|
zstyle ':completion:*' accept-exact '*(N)'
|
|
zstyle ':completion:*' squeeze-slashes true
|
|
zstyle ':completion:*:*:*:*:*' menu select
|
|
zstyle ':completion:*:match:*' original only
|
|
zstyle ':completion:*:-command-:*:' verbose false
|
|
zstyle ':completion::complete:*' gain-privileges 1
|
|
zstyle ':completion:*:manuals.*' insert-sections true
|
|
zstyle ':completion:*:manuals' separate-sections true
|
|
zstyle ':completion:*' completer _complete _match _approximate _ignored
|
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
|
|
|
# labels and categories
|
|
zstyle ':completion:*' group-name ''
|
|
zstyle ':completion:*:matches' group 'yes'
|
|
zstyle ':completion:*:options' description 'yes'
|
|
zstyle ':completion:*:options' auto-description '%d'
|
|
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
|
|
zstyle ':completion:*' format ' %F{green}->%F{yellow} %d%f'
|
|
zstyle ':completion:*:messages' format ' %F{green}->%F{purple} %d%f'
|
|
zstyle ':completion:*:descriptions' format ' %F{green}->%F{yellow} %d%f'
|
|
zstyle ':completion:*:warnings' format ' %F{green}->%F{red} no matches%f'
|
|
zstyle ':completion:*:corrections' format ' %F{green}->%F{green} %d: %e%f'
|
|
|
|
# menu colours
|
|
eval "$(dircolors)"
|
|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
|
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=36=0=01'
|
|
|
|
# command parameters
|
|
zstyle ':completion:*:functions' ignored-patterns '(prompt*|_*|*precmd*|*preexec*)'
|
|
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
|
|
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
|
|
zstyle ':completion:*:processes-names' command 'ps c -u ${USER} -o command | uniq'
|
|
zstyle ':completion:*:(vim|nvim|vi|nano):*' ignored-patterns '*.(wav|mp3|flac|ogg|mp4|avi|mkv|iso|so|o|7z|zip|tar|gz|bz2|rar|deb|pkg|gzip|pdf|png|jpeg|jpg|gif)'
|
|
|
|
# hostnames and addresses
|
|
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
|
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
|
|
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
|
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
|
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
|
|
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
|
zstyle -e ':completion:*:hosts' hosts 'reply=( ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}})'
|
|
ttyctl -f
|