]> git.siccegge.de Git - dotfiles/zsh.git/blobdiff - zshrc
+= cdtmp
[dotfiles/zsh.git] / zshrc
diff --git a/zshrc b/zshrc
index abd47ce5a61cbf00d758a90a76009d23573bc82b..fd2baf2825bdb7838379deb6cb5315c4affd1f8b 100644 (file)
--- a/zshrc
+++ b/zshrc
@@ -34,10 +34,21 @@ colors
 
 zmodload -i zsh/complist
 
+_force_rehash() {
+    if (( CURRENT == 1 )); then
+        rehash
+    fi
+    # We didn't really complete anything.
+    return 1
+}
+
 zstyle :compinstall filename '/home/christoph/.zshrc'
 zstyle ':completion:*' menu select=3
 zstyle -e ':completion::*:*:*:hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2|_uni|_debian)(N) /dev/null)"}%%[# ]*}//,/ })'
 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+zstyle ':completion:::::' completer _force_rehash _complete _approximate _expand _ignored
+zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX + $#SUFFIX) / 3 )) )'
+zstyle ':completion:*:(^approximate):*' matcher-list 'm:{a-z}={A-Z}'
 
 bindkey -e
 bindkey '\ee' backward-word 
@@ -56,7 +67,7 @@ precmd () {
     vcs_info
     setWindowTitle ${USER}@${HOST}
 
-    if [[ $UID == 0  && -f `which systemctl` ]]
+    if [[ $UID == 0 && $+commands[systemctl] != 0 ]]
     then
       use_systemd=true
       systemd_failed="`systemctl --state=failed | grep failed | cut -d \  -f 2 | tr '\n' ' '`"
@@ -84,7 +95,7 @@ case "${DOMAIN//cs.fau.de/informatik.uni-erlangen.de}" in
                ;;
 esac
 
-if [[ $UID == 0  && -f `which systemctl` ]]
+if [[ $UID == 0 && $+commands[systemctl] != 0 ]]
 then
   PROMPT=$'%{$fg[red]>>  $systemd_failed$reset_color%}\n'
 else