macOSの標準シェルがzshになって、Linux環境にもzshを入れて使い始めたけど、時々予想外の動きをしてくれた。
リモートのファイルをscpでコピーしようと “scp remote:*.c .”みたいなことをしたら、no match*.c みたいなエラー。ワイルドカード展開のタイミングが bash などと違うみたい。
逆に、リモートホスト名が書いてある状態だと、ファイル名補完でリモートに接続しようとして待ちが発生して使い勝手も悪くなるといった情報もある。
そこで、上記2つの問題に対応するために、.zshrc に以下の内容を追加。
PROMPT="%F{cyan}[%n@%m %1~]%(#.#.$)%f " setopt nonomatch zstyle ':completion:*:complete:scp:*:files' command command -