From: Simon Ruderich Date: Sun, 16 Mar 2014 17:39:17 +0000 (+0100) Subject: zsh/rc: force reload of the completions if nothing matched X-Git-Url: https://ruderich.org/simon/gitweb/?p=config%2Fdotfiles.git;a=commitdiff_plain;h=f2df0b785d347bb35b06ba9943cea380c1ac7637 zsh/rc: force reload of the completions if nothing matched --- diff --git a/zsh/rc b/zsh/rc index 7c5ab05..afc78b0 100644 --- a/zsh/rc +++ b/zsh/rc @@ -665,8 +665,21 @@ setopt nolistambiguous # the _prefix completer. setopt completeinword +# Force a reload of the completion system if nothing matched; this fixes +# installing a program and then trying to tab-complete its name. Thanks to +# Alex Munroe [1] for the code, read on 2014-03-03. +# +# [1]: https://github.com/eevee/rc/blob/master/.zshrc +_force_rehash() { + if (( CURRENT == 1 )); then + rehash + fi + # We didn't really complete anything. + return 1 +} + zstyle ':completion:::::' completer \ - _expand _complete _prefix _ignored _approximate + _force_rehash _expand _complete _prefix _ignored _approximate # Match specification to be tried when completing items. Each group ('...') is # tried after another if no matches were found, once matches are found no