I hear zsh can do this sort of thing