diff --git a/dot_config/zsh/sshcompfix.zsh b/dot_config/zsh/sshcompfix.zsh new file mode 100644 index 0000000..4d75ca1 --- /dev/null +++ b/dot_config/zsh/sshcompfix.zsh @@ -0,0 +1,14 @@ +# use known_hosts for completion +zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })' + +# order stuff +zstyle ':completion:*:(scp|ssh):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' +zstyle ':completion:*:scp:*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr +zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr + +# ignored patterns +zstyle ':completion:*:*:*:users' ignored-patterns '*' +zstyle ':completion:*:*:*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost localhost4 localhost6 ip6-localhost broadcasthost +zstyle ':completion:*:*:*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' '*localdomain*' '*.eeleater.org' '*.local' +zstyle ':completion:*:*:*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*' + diff --git a/dot_zshrc b/dot_zshrc index e455729..181b8ea 100644 --- a/dot_zshrc +++ b/dot_zshrc @@ -1,5 +1,4 @@ # Documentation: https://github.com/romkatv/zsh4humans/blob/v5/README.md - zstyle ':z4h:' auto-update 'no' zstyle ':z4h:' auto-update-days '28' @@ -57,14 +56,7 @@ zle -N run_ranger bindkey '^f' run_ranger # fix ssh completions -zstyle ':completion:*:*:*:users' ignored-patterns '*' -zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })' -zstyle ':completion:*:(scp|ssh):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' -zstyle ':completion:*:scp:*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr -zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr -zstyle ':completion:*:*:*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost localhost4 localhost6 ip6-localhost broadcasthost -zstyle ':completion:*:*:*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' '*localdomain*' '*.eeleater.org' '*.local' -zstyle ':completion:*:*:*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*' +z4h source $HOME/.config/zsh/sshcompfix.zsh # Define named directories: ~wsl <=> Windows home directory on WSL. [[ -z $z4h_win_home ]] || hash -d wsl=$z4h_win_home