Gitを使っていると、今のcommitなし!とgit reset --soft HEAD^したり、abc1234以降のコミットをパッチ化したい!とgit format-patch abc1234^したくなることがよくあるわけだが、この^はzshの拡張グロブ有効化時(setopt extended_glob)はメタ文字として働くため、そのまま入力すると標記のエラーで怒られてしまう。 いちいちエスケープするのは面倒だと思うのだが、ぐぐってみても正面から対処している人があまりいないようなので紹介しておくと、拙作のgit-escape-magicを使えば良い。リンク先のドキュメントの通り、ふつうに入力するだけで、いい感じに文脈を見て自動エスケープしてくれる。 このように、zle(zshラインエディタ)をいじると結構おもしろいことができる。 たとえば、3つ上のディレクトリを参照するために../../