I used to use a lot of zsh at work, and one thing that drove me nuts was overzealous wildcard expansion.
>scp server2:~/folder/* .
zsh: no matches found: server2:~/folder/*
nothing in current work dir matches 'server2:~/folder/ * ', so zsh helpfully yells at me. yeah I know use single quotes to avoid expansion, and backslash should work too. It makes total sense because * is a reserved character, but still, bash got it. surely Zsh could've too ?
It probably got fixed since then, but this raw frustration is my most vivid memory from zsh usage.
This behavior can be turned off by adding this to .zshrc:
setopt no_nomatch # if there are no matches for globs, leave them alone and execute the command
zsh also tries to autocomplete directory names using variables in global namespace that point to directories. I found that behavior maddening and can be turned off with:
setopt no_cdable_vars # don't use named directories in cd autocompletion
nothing in current work dir matches 'server2:~/folder/ * ', so zsh helpfully yells at me. yeah I know use single quotes to avoid expansion, and backslash should work too. It makes total sense because * is a reserved character, but still, bash got it. surely Zsh could've too ?
It probably got fixed since then, but this raw frustration is my most vivid memory from zsh usage.