zsh では普通はオプションを指定したらそのシェルが終了するまでずっと有効なんだけど、そうじゃなくて関数内だけで有効にする方法があるので紹介する。 zsh には local_options というオプションがある。これを有効にすると、関数を出た時に関数を呼び出した時点でのオプション設定が復元される。つまり、関数の中で設定したオプションをその関数内だけで有効にする、という動作になる。 例を紹介する。 glob_dots を関数の中だけで有効にする例 glob_dots は、* でワイルドカード指定したときにドットで始まるファイル名にもマッチするようになるオプション。 デフォルトでは無効になってるんだけど、シェルスクリプトとかzshrcの中に関数を書いている時とかでたまに有効にしたくなることがある。でも適当に有効にすると影響範囲が大きくなりすぎて困る。そういうときに local_options