Case-insensitive autocomplete with zsh


When I was using Arch Linux, I configured my home directory and all subdirectories with all lowercase names like documents, downloads, and projects. After switching to macOS, it bugged me that these directories started with an uppercase letter. There are probably ways to change this but I didn’t want to mess with macOS’ expectation. macOS’ default terminal, now zsh, does not support case-insensitive autocomplete by default. The lack of this feature threw me off when I was navigating around with the cd command.

I’m embarrassed to admit that I put up with this annoyance for way too long. But guess what? A quick search showed me how incredibly easy it is to add case-insensitive autocomplete with zsh! You don’t even need to install a plugin! Simply add the following lines to your .zshrc and don’t forget to source it:

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'