As raylu says, zsh has that feature. Prezto (
https://github.com/sorin-ionescu/prezto) makes it relatively easy to get started with zsh. Install it, enable any extra modules you want to load in .zpreztorc inside the “zstyle ':prezto:load' pmodule \” command, then update your .zshrc with your existing customizations from .bashrc and .bash_profile.