man zshoptions

zshoptions のマニュアル(訳)

名前

zshoptions - zsh のオプション

オプションの指定方法

オプションはまず、名前によって参照される。この名前では大文字小文字の区別はなく、アンダースコア(_)は無視される。たとえば、 `allexport' は `A__lleXP_port' と等価。

オプションの名前の意味は、先頭に `no' をつけると逆転する。つまり、 `setopt No_Beep' は `unsetopt beep' と同じ。この反転は一段しか行われないので、 `nonobeep' は `beep' と同じではない。同様に、 `tify' は `nonotify' と同じではない(これは `notify' の逆転)。

オプションは1つ以上の単一文字名を持つことがある。単一文字オプションには2つの種類がある。ひとつはデフォルトに使われるもの、もうひとつは sh/ksh をエミュレートするためのもの( SH_OPTION_LETTERS オプションがセットされるときに使われる)である。単一文字オプションはシェルコマンドや組み込みコマンド set、 setopt、 unsetopt で、通常の Unix オプションと同じように `-' の後に続けて使うことができる。

単一文字オプションの意味は、 `-' のかわりに `+' を使うことで反転する。単一文字オプションによってオプションがオフになる場合には、逆にすることでオンになる。たとえば、 `+n' は `exec' の短縮名で、 `-n' が `noexec' の短縮名となる。

シェル起動時の単一文字オプションの指定では、末尾の空白文字は単に無視される。たとえば、 `-f    ' は `-f' として扱われるが、 `-f i' はエラーとなる。これは、スクリプトを呼ぶ `#!' メカニズムを実装する多くのシステムでは、末尾の空白文字が削られないことによる。

オプションの説明

下記のリストにおいて、全てのエミュレーションにおいてデフォルトでセットされるオプションは <D> とマークされる。 csh、ksh、sh、zsh の各エミュレーションでのみデフォルトでセットされるものは、それぞれ <C>、<K>、<S>、<Z>とマークされる。オプションをリストするとき(`setopt' `unsetopt' `set -o' `set +o' のいずれかで実行できる)、デフォルトから反転されたオプションは先頭に `no' がつく。したがって(KSH_OPTION_PRINT がセットされていなければ) `setopt' はデフォルトから変化しているすべてのオプション設定を表示する。

ALIASES <D>
エイリアスを拡張する。
ALL_EXPORT (-a, ksh: -a)
以降、定義された全ての変数は自動的に export される。
ALWAYS_LAST_PROMPT <D>
このオプションが解除されれば、補完をリストアップするキー関数は数値引数が与えられたときに最後のプロンプトに戻ろうとする。セットされているときは、関数は数値引数がない場合に最後のプロンプトに戻ろうとする。
ALWAYS_TO_END
単語の途中にカーソルを置いて補完が実行されたときに、完全な補完が挿入されると、カーソルが単語の末尾まで移動する。つまり、ひとつしかマッチしないで挿入されたときやメニュー補完が実行されたときに、カーソルが単語の末尾まで移動する。
APPEND_HISTORY <D>
このオプションがセットされると、 zsh セッションはヒストリのリストをヒストリファイルを上書きするのではなく、追加するようになる。このため、複数の並列な zsh セッションは、個々のヒストリリストを、終了した順序でヒストリファイルに追加するようになる。
AUTO_CD (-J)
通常のコマンドとして実行できないコマンドが発行され、コマンドがディレクトリの名前のとき、そのディレクトリへの cd コマンドが実行される。
AUTO_CONTINUE
このオプションがセットされると、組み込みコマンド disown でジョブテーブルから削除されストップしたジョブには自動的に CONT シグナルが送られ、実行するようになる。
AUTO_LIST (-9) <D>
曖昧な補完で、自動的に選択肢をリストアップする。
AUTO_MENU <D>
二度目の連続する補完の要求(たとえば、タブキーの連打)があると、自動的にメニュー補完を使う。このオプションは MENU_COMPLETE に上書きされる。
AUTO_NAME_DIRS
ディレクトリの絶対パスがセットされた変数は、そのディレクトリの名前となる。 `%~' や関連するプロンプトのシーケンスに使われ、 `~' から始まる単語の補完が行われた時にも利用される(さもなくば、変数は ~param の形式で最初に使わなければならない)。
AUTO_PARAM_KEYS <D>
変数名が補完され、自動的に文字(通常スペース)が入力されたあと、次の文字が変数名の直後に来るべきもの(`}'とか`:'とか)であるなら、自動的に付加された文字が削除され、入力された文字が変数名の直後に来る。ブレースの場合の補完も同様に影響を受ける。追加された `,' は、次に `}' がタイプされると削除される。
AUTO_PARAM_SLASH <D>
中味がディレクトリ名である変数を補完すると、末尾がスペースのかわりにスラッシュとなる。
AUTO_PUSHD (-N)
cd すると古いディレクトリがディレクトリスタックに積まれる。
AUTO_REMOVE_SLASH <D>
補完の結果として得られる最後の文字がスラッシュで、次に入力した文字が単語の区切文字、スラッシュ、もしくはコマンドを終端する文字(セミコロンやアンパサンド)のとき、そのスラッシュを取り除く。
AUTO_RESUME (-W)
リダイレクションを含まない、単一語のコマンドを、終了したジョブの再実行の候補として扱う。
BAD_PATTERN (+2) <C> <Z>
ファイル名生成のパターンがフォーマット違反の時、エラーメッセージを表示する(このオプションが解除されていると、パターンはそのままになる)。
BANG_HIST (+K) <C> <Z>
cshスタイルのヒストリ拡張を使う。 `!' 文字を特別に扱う。
BARE_GLOB_QUAL <Z>
グロブパターンにおいて、末尾にあって `|' も `(' も `~' も含まないならば、修飾子とみなす。ファイル名生成の章を参照のこと。
BASH_AUTO_LIST
曖昧な補完の場合、補完関数が二度連続で呼ばれると自動的に選択肢をリストアップする。このオプションは AUTO_LIST よりも強い優先度を持つ。 LIST_AMBIGUOUS がセットされていることが想定されている。 AUTO_MENU がセットされると、メニューの動作は三度目に開始される。MENU_COMPLETE がセットされているときには、補完呼び出しはそのままリストをサイクルするので、機能しない。
BEEP (+B) <D>
ZLE のエラー時にビープ音を発する。
BG_NICE (-6) <C> <Z>
全てのバックグラウンドジョブを低優先度で実行する。このオプションはデフォルトで設定される。
BRACE_CCL
ブレース内の式が正しくない形式({xx,yy,zz}や{0..100}のような形式でない)とき、個々の文字の辞書順リストとなる。 `Brace Expansion' を参照のこと。
BSD_ECHO <S>
組み込みコマンド echo を、 BSD echo(1) コマンドと互換性のある動作にする。 -e オプションが指定されなければ、与えられた文字列中からバックスラッシュつきのエスケープシーケンスを無効化する。
CASE_GLOB <D>
グロッビング(ファイル名生成)で大文字小文字を区別する。他のパターンでは常に大文字小文字を区別することに注意。このオプションが解除されているときには、ファイル名生成は大文字小文字に関係なくマッチする。たとえば、 cvs(/) は(BARE_GLOB_QUALがunsetoptされていなければ) CVS というディレクトリにマッチする。
C_BASES
16進数を C 言語形式で出力する。たとえば標準の `16#FF' のかわりに `0xFF' となる。もし OCTAL_ZEROES もセットされていれば、8進数も `8#77' ではなく `077' のように表示される。このオプションは出力する基数の選択にも、16進数と8進数以外の基数の出力にも、影響を及ぼさない。入力の場合には、これらの形式は C_BASES の設定とは無関係に認識されることに注意。
CDABLE_VARS (-T)
cd コマンド(もしくは AUTO_CD オプションをセットすることによる暗黙の CD) に与えられる引数がディレクトリではなく、スラッシュから開始されない場合には、先頭が `~' で開始されるように拡張される(`Filename Expansion' を参照のこと)。
CHASE_DOTS
パスの一部に `..' が含まれているもの、つまりひとつ前のディレクトリ名をキャンセルしたものに移動するとき、実際のディレクトリ名に移動する。このオプションは CHASE_LINKS で上書きされる。
たとえば、 /foo/bar が /alt/rod へのリンクだったとする。このオプションがセットされていなければ、 `cd /foo/bar/..' は /foo へ移動する。セットされていると、 /alt に移動する。同じことは、現在のディレクトリが /foo/bar で `cd ..' を実行した場合にも起こる。そのパスにある他の全てのシンボリックリンクも解決されることに注意。
CHASE_LINKS (-w)
ディレクトリ移動時のシンボリックリンクを真の値に変換する。このオプションは CHASE_DOTS の効果も持つ。つまり、 `..' を部分として持つとき、親がシンボリックリンクだと実際の親ディレクトリを参照する。
CHECK_JOBS <Z>
バックグラウンドジョブとサスペンドしたジョブのステータスが、ジョブ制御をしたシェルの終了前に報告される。もう一度シェルを終了させようとすると成功する。 NO_CHECK_JOBS は NO_HUP と一緒にセットすると効果的で、さもないとそのようなジョブが自動的に kill されない。
直前に `jobs' を含むコマンド行のコマンドを実行した場合、このチェックは行われない。なぜなら、その時にはユーザはバックグラウンドジョブやサスペンドジョブの存在に気付いていると思われるからである。 precmd 関数から実行された `jobs' コマンドは勘定に入れない。
CLOBBER (+C, ksh: +C) <D>
`>' のリダイレクションで存在するファイルを指定した場合に削除し、 `>>' で存在しないファイルを指定した場合に新しいファイルを作成する。セットされていない時には、ファイルを削除する時には `>!' または `>|' を使い、新しいファイルを作成する時には `>>!' または `>>|' を使うこと。
COMPLETE_ALIASES
補完を行う前に内部的にコマンド行のエイリアスを置き換える作業を抑制する。この効果は、補完時にはエイリアスを元のコマンドとは違う名前のコマンドとみなすということを意味する。
COMPLETE_IN_WORD
セットされないと、補完を開始したときにカーソルは単語の終端に位置するとみなされる。さもなくば、カーソルはそのままに両端から補完される。
CORRECT (-0)
コマンドのスペルの訂正を試みる。 HASH_LIST_ALL オプションがセットされていなかったり、もしくはパス中のディレクトリに読み込みできないものがある場合には、いくつかのコマンドを最初につかう場合には誤ってスペルのエラーを報告する場合がある。
CORRECT_ALL (-O)
コマンド行の全ての引数に対してスペルミスの訂正を試みる。
CSH_JUNKIE_HISTORY <C>
イベント識別子なしのヒストリ参照はつねに直前のコマンドとみなされる。このオプションが解除されているときは、そのようなヒストリ参照は直前のヒストリ参照と同じイベントを参照する(一度もヒストリ参照していなけれ直前のコマンド)。
CSH_JUNKIE_LOOPS <C>
ループの中味として `do list; done' ではなく `list; end' の形式を許可する。
CSH_JUNKIE_QUOTES <C>
シングルクォートやダブルクォートの文字列のルールを、 csh のものと一致させる。改行を埋め込むときにはバックスラッシュを前置し、エスケープされない改行はエラーメッセージを出す。ダブルクォートされた文字列では、 `$' と ``' と `"e;' をエスケープできなくなる(`\'それ自体にエスケープが必要なくなる)。コマンド置換は一度しか実行されず、ネストできない。
CSH_NULLCMD <C>
コマンドなしにリダイレクトを実行したとき、 NULLCMD および READNULLCMD の値を使わない。その場合、リダイレクションは失敗する(`Redirection' を参照)。
CSH_NULL_GLOB <C>
ファイル名生成のパターンがマッチしないとき、引数リストからそのパターンを取り除く。コマンド中の全てのパターンがマッチしない時でなければエラーを出力しない。 NOMATCH を上書きする。
DVORAK
CORRECT、CORRECTALL の両オプション、および spell-word エディタコマンドでのスペルミス推定で、標準の qwerty 配列ではなく Dvorak 配列を使う。
EMACS
ZLE がロードされていてこのオプションがオンになっているのは、 `bindkey -e' と等価に扱われる。加えて、 VI オプションが解除される。オフにしても効果はない。このオプションは、現在のキーマップには影響を及ぼさない。このオプションは互換性のための提供であり、 bindkey の利用が推奨される。
EQUALS <Z>
= のファイル名生成が利用される(`Filename Expansion' を参照のこと)。
ERR_EXIT (-e, ksh: -e)
あるコマンドが非ゼロの終了コードとなったとき、このオプションがセットされていると、 ZERR トラップを実行して終了する。初期化スクリプトの実行時は無効となる。
ERR_RETURN
あるコマンドが非ゼロの終了コードとなったとき、そのコマンドの外の関数から脱出する。挙動は ERR_EXIT と似ているが、暗黙に実行されるのが exit でなくて return となる。インタラクティブでないスクリプトの最も外側の exit をひきおこすこともある。
EXEC (+n, ksh: +n) <D>
コマンドを実行する。このオプションなしには、コマンドが読み込まれて構文エラーをチェックうするだけで、実行されない。このオプションはインタラクティブなシェルではオフにできない。ただし起動時に `-n' オプションが与えられている場合を除く。
EXTENDED_GLOB
`#' `~' `^' といった文字をファイル名生成のパターンの一部として扱う。
EXTENDED_HISTORY <C>
コマンドの開始時のタイムスタンプ(エポックからの秒数)と実行時間(秒単位)をヒストリに含める。フォーマットは次のようになる。
`:<開始時刻>:<実行秒数>:<コマンド>'
FLOW_CONTROL <D>
このオプションが解除されていると、シェルエディタにおけるスタート/ストップ文字(通常は ^S/^Q) によるフロー制御の出力が無効化される。
FUNCTION_ARGZERO <C> <Z>
シェル関数やスクリプトの source 実行時に、 $0 を一時的にその関数/スクリプト名にセットする。
GLOB (+F, ksh: +f) <D>
ファイル名生成(グロッビング)を実行する(`Filename Generation' を参照)。
GLOBAL_EXPORT (<Z>)
このオプションがセットされていると、 declare、float、integer、readonly、および typeset(ただし local は除く)に -x フラグが与えられると、 -g フラグもオンになる。このため、環境にエクスポートされた変数は、すでに存在しているか明示的に +g フラグが与えられない限り、その変数を含む関数ローカルに限定されない。このオプションが解除されると、エクスポートされた変数も他の変数と同様にローカルになる。
このオプションは後方互換性のためにデフォルトでセットされている。このふるまいに依存することは推奨されない。組み込みコマンド export はつねに -x と -g フラグがセットされているので、その効果は関数のスコープを越えることに注意。このふるまいを実現する最も安全な方法がこれである。
GLOBAL_RCS (-d) <D>
このオプションが解除されると、起動時に /etc/zprofile、/etc/zshrc、/etc/zlogin、/etc/zlogout は実行されなくなる。この無効化や再有効化はいつでも、ローカルなスタートアップファイル(.zshrc など)の中でも可能である。
GLOB_ASSIGN <C>
このオプションがセットされると、スカラ変数代入の形式の `name=pattern' (たとえば `foo=*')の右辺でもファイル名生成(グロッビング)が実行される。結果が一語を越える場合には、変数はそれらの単語を持つ配列となる。このオプションは後方互換性のためだけに提供される。割り当ての右辺では、配列割り当ての形式 `name=(value)' (たとえば `foo=(*)')の場合に常にグロッビングが実行される。この形式の方がわかりやすいので推奨される。このオプションがセットされていると、結果が配列になるのかスカラになるのか予測できない。
GLOB_COMPLETE
現在の単語がグロブパターンのとき、その結果の単語すべてを挿入するのではなく、 MENU_COMPLETE のように補完にマッチしたものを生成し、サイクルする。このマッチでは、末尾かもしくは COMPLETE_IN_WORD がセットされていればカーソル位置に `*' があるかのように生成される。このマッチは実際のパターンマッチングを使っており、グロッビングではないため、ファイルだけではなく、オプションやユーザ名を含む任意の補完で機能する。
GLOB_DOTS (-4)
`.' で開始するファイル名にマッチさせるとき、先頭に明示的に `.' を指定する必要がなくなる。
GLOB_SUBST <C> <K> <S>
変数の結果を置換して得られた文字を、ファイル拡張やファイル名生成として扱う。ブレース(およびその中のカンマ)はこの拡張には使えない。
HASH_CMDS <D>
個々のコマンドの位置を、最初に実行したときに記憶する。同じコマンドを続けて呼ぶと、パス検索を回避してセーブしておいた位置を使う。このオプションが解除されると、パスのハッシュは全く行われない。しかし、 CORRECT がセットされているとき、関数やエイリアス用のハッシュテーブルにないコマンドは、それをスペルミスと判断するのを避けるためにハッシュされる。
HASH_DIRS <D>
コマンド名がハッシュされるときに、それを含むディレクトリもハッシュする。まるでパス中の先頭にディレクトリがあるようになる。このオプションは、 HASH_CMD も CORRECT もセットされていないときには何も影響しない。
HASH_LIST_ALL <D>
コマンド補完が行われたとき、コマンドパスが最初にハッシュされるようにする。このことから、最初の補完は遅くなる。
HIST_ALLOW_CLOBBER
ヒストリにおいて、出力リダイレクションに `|' を加える。このことにより、 CLOBBER が解除されているときでも、ヒストリで参照した場合はファイルを自動的に切り詰めたりできる。
HIST_BEEP <D>
存在しないヒストリエントリにアクセスしようとしたときにビープを出す。
HIST_EXPIRE_DUPS_FIRST
現在のコマンド行をヒストリに追加することによって、内部のヒストリの末尾が削られるときに、ユニークなものの前に、全く同じイベントがヒストリ中に存在する、最も古いものが削除される。イベントを複製する余地を開けるためには、 HISTSIZE は SAVEHIST よりも大きい値にしておくこと。でなければ、このオプションは単に HIST_IGNORE_ALL_DUPS と同じ効果しかない。
HIST_FIND_NO_DUPS
ラインエディタでヒストリのエントリを探索するときに、一度見たことのあるエントリと同じものは、それが連続していなければ表示しない。
HIST_IGNORE_ALL_DUPS
コマンド行からヒストリリストに追加されたものが古いものと全く同じ場合に、古いものをリストから削除する(それが直前のイベントでなくても)。
HIST_IGNORE_DUPS (-h)
直前のイベントと全く同じものの場合、コマンド行をヒストリリストに加えない。
HIST_IGNORE_SPAE (-g)
行の最初の文字がスペースの場合、もしくはスペースから開始される拡張エイリアスの場合に、コマンド行をヒストリリストから削除する。次のコマンドを入力するまでは内部ヒストリにコマンドは残っているので、ちょっとした再利用や行エディットは可能である。次のコマンドを入れる前に消したい時には、スペースを入力してリターンキーを押せばよい。
HIST_NO_FUNCTIONS
ヒストリリストから関数定義を除く。次にコマンドを入力するまでは関数定義は残っているので、ちょっとした再利用や定義の修正は可能である。
HIST_NO_STORE
history (fc -l) コマンドをヒストリリストから取り除く。これも次のコマンドが入力されるまでは残っているので、ちょっとした再利用や修正は可能である。
HIST_REDUCE_BLANKS
ヒストリリストに追加するときに、各コマンド行の余計な空白を取り除く。
HIST_SAVE_NO_DUPS
ヒストリファイルに書き出すときに、古いコマンドと同じものは無視する。
HIST_VERIFY
ヒストリ拡張から行に持ってきた場合、それを直接は実行しない。ヒストリ拡張を行い、行をバッファに読み込む。
HUP <Z>
シェル終了時に、起動中のジョブに HUP シグナルを送る。
IGNORE_BRACES (-I) <S>
ブレース拡張を行わない。
IGNORE_EOF (-7)
ファイル終端で終了しない。 exit か logout の実行を要求する。しかし、10回連続で EOF が入力されたらとにかく終了する。これは、 tty がなくなってしまった場合にハングするのを防ぐ目的である。
また、このオプションがセットされていて Zsh Line Editor を使っているとき、シェル関数で実装されているウィジェットは、通常の警告メッセージを表示することなく EOF (通常は Control-D)に束縛される。この機能は通常のウィジェットにのみ機能し、補完ウィジェットには機能しない。
INC_APPEND_HISTORY
このオプションがセットされると、 APPEND_HISTORY のように、新しいヒストリ行は $HISTFILE にインクリメンタルに(入力されるとすぐに)追加されるようになる。ファイルは行数が $SAVEHIST で切らるようになるが、削除の間はこの値を越えることもある。
INTERACTIVE (-i, ksh: -i)
対話的なシェルであることを意味する。このオプションは、標準入力が tty でコマンドが標準入力から読まれる場合、初期化時にセットされる(SHIN_STDIN の議論を参照のこと)。このオプションの状態をコマンド行で指定することにより、上書きできる。このオプションの値は、コマンド行以外の場所では変化されない。
INTERACTIVE_COMMENTS (-k) <K> <S>
対話的なシェルでもコメントを有効にする。
KSH_ARRAYS <K> <S>
ksh っぽい配列の扱いをできるだけエミュレートする。このオプションが設定されると、配列の要素は0から数えられるようになり、添字のない配列は配列全体ではなく最初の要素を参照するようになり、添字を区別するためのブレースが不可欠になる($path[2] ではなく ${path[2]} でないとダメ)。
KSH_AUTOLOAD <K> <S>
ksh の関数オートロードをエミュレートする。すなわち、関数がオートロードされると、対応するファイルが単に実行され、それによって関数が定義されなければならない。(デフォルトでは、関数はファイルの中味で定義される。しかし、最も一般的な ksh スタイルの場合、つまりファイルが関数の定義だけを含む場合には、常に ksh 互換のマナーで扱われる)。
KSH_GLOB <K>
パターンマッチにおいて、カッコの解釈は直前の `@'、`*'、`+'、`?'、`!' によって異なる。`Filename Generation' の章を参照のこと。
KSH_OPTION_PRINT <K>
オプション設定の表示方法を変える。セットされてるオプションと解除されいるオプションの2つのリストではなく、全てのオプション表示され、デフォルト設定でなければ `on'、さもなくば `off' とマークされるようになる。
KSH_TYPESET <K>
typeset 系のコマンド、 declare、 export、 float、 integer、 local、 readonly などの引数の処理方法を変える。このオプションなしでは、コマンドや変数を値に置き換えてから、通常の単語分割を行う。セットされていると、変数の値では単語を分割しない。
LIST_AMBIGUOUS <D>
AUTO_LIST または BASH_AUTO_LIST がセットされている時に機能する。コマンド行から入力したプレフィクスに曖昧さがないとき、補完リストを表示することなく補完する。言い換えれば、自動リスト機能は、何も補完入力されなかった場合にのみ実行される。 BASH_AUTO_LIST の場合、3回目の関数呼び出しのときにリストが表示される。
LIST_BEEP <D>
曖昧な補完の時にビープ音を発する。より正確には、このオプションは曖昧な補完の場合に補完ウィジェットが1を返すようにさせるもので、 BEEP オプションがセットされていると、その時にシェルがビープ音を発するようになる。ユーザ定義ウィジェットから呼ばれる補完の場合は変更もできる。
LIST_PACKED
異なる幅のカラムを使うことで、補完リストを小さく(なるべく少ない行数に)しようとする。
LIST_ROWS_FIRST
補完リストを水平にソートする。つまり、二番目にマッチするものは、通常通り最初の下ではなく、右に位置するようになる。
LIST_TYPES (-X) <D>
補完対象となるファイルをリストアップするとき、ファイルの末尾に識別マークをつけて種類を提示する(訳注:ls -F の記号)。
LOCAL_OPTIONS <K>
このオプションがセットされると、シェル関数の終了時に、すべての(このオプションを含む)オプションは復帰される。さもなくば、このオプションと XTRACE、 PRINT_EXIT_VALUE だけが復帰される。このため、あるシェル関数の中で明示的にこのオプションを切ると、他のオプションはそのままになる。シェル関数では、 `emulate -L zsh' のような形式によって、シェルの状態を保証できる。この -L で LOCAL_OPTIONS が起動する。
LOCAL_TRAPS <K>
このオプションがセットされていて、関数内でシグナルのトラップが設定されているとき、関数の終了時にそのシグナルの元のトラップに復帰する。このオプションは、関数におけるトラップのふるまいを変える前に設定しなければならないので注意。 LOCAL_OPTIONS と異なり、関数の終了値は意味がない。ただし、関数によって適切に復帰されるべきグローバルトラップの設定の前にこのオプションをセットする必要はない。たとえば、
  unsetopt localtraps
  trap - INT
  fn() { setopt localtraps; trap '' INT; sleep 3; }
これは、関数の終了後に SIGINT の扱いをデフォルトに戻す。
LOGIN (-l, ksh: -l)
ログインシェルであることを示す。このオプションが明示的に設定されない場合、シェルに渡される argv[0] の最初の文字が `-' だった場合にシェルはログインシェルとなる。
LONG_LIST_JOBS (-R)
ジョブリストがデフォルトでロングフォーマットになる。
MAGIC_EQUAL_SUBST
コマンド名のあとに表われる、クォートされていない `anything=expression' という形式の引数は、 expression のところ(expression は `~' または `=' の後に現れる)がパラメタ割り当てであるかのように、ファイル名拡張を行う。でなければ、この引数は特別には扱われない。この形式の引数はコマンドに対する単一の引数とみなされる。たとえば、 echo foo=~/bar:~/rod において、どちらの場合も ~ が置き換えられる。このことは typeset や似たような分でも起こる。
このオプションは KSH_TYPESET オプションの設定を反映する。言い換えると、どちらのオプションもセットされている場合、割り当てのように見える引数は単語分割しないようになる。
MAIL_WARNING (-U)
シェルが最後にチェックした後でメールファイルがアクセスされていると、警告メッセージを表示する。
MARK_DIRS (-8, ksh: -X)
ファイル名生成(グロッビング)の結果のディレクトリ名に対して、 `/' を末尾に追加する。
MENU_COMPLETE (-Y)
曖昧な補完の際に、可能なリストを表示してビープを鳴らすのではなく、最初にマッチしたものをいきなり挿入する。補完が再度要求されると、最初のマッチを消して次のマッチを挿入する。マッチするものがもうなければ、最初のマッチに戻る。他の方向にリストをループするには reverse-menu-complete を使う。このオプションは AUTO_MENU を上書きする。
MONITOR (-m, ksh: -m)
ジョブ制御を可能にする。対話的なシェルではデフォルトでセットされる。
MULTIOS <Z>
複数のリダイレクションが行われるときに、暗黙に tee や cat が実行される(`Redirection' の章を参照)。
NOMATCH (+3) <C> <Z>
ファイル名生成のパターンにマッチするものがない場合、引数リストをそのままにするのではなく、エラーを表示する。 `~' や `=' から開始されるファイル拡張にも適用される。
NOTIFY (-5, ksh: -b) <Z>
バックグラウンドジョブの状態の報告を、次のプロンプトを表示するまで待つのではなく、即座に行う。
NULL_GLOB (-G)
ファイル名生成のパターンにマッチするものがないときは、エラーを報告するのではなく、その引数リストのパターンを除去する。 NOMATCH を上書きする。
NUMERIC_GLOB_SORT
ファイル名生成パターンから数値ファイル名がマッチしたら、ファイル名を辞書順ではなく数値順にソートする。
OCTAL_ZEROES <S>
0から開始される整数は、 IEEE Std 1003.2-1992 (ISO 994502:1993) に従って8進数として解釈する。これはデフォルトでは解除されている。というのは、たとえば、日付や時刻など0から開始される文字列のパースに問題が起こるからである。
OVERSTRIKE
ラインエディタをオーバストライクモードで起動する。
PATH_DIRS (-Q)
コマンド名にスラッシュが含まれていても、パス探索を行う。このため、たとえばユーザのパスに `/usr/local/bin' があったとして、ユーザが `X11/xinit' と打ち込んだとき、(存在していれば) `/usr/local/bin/X11/xinit' が実行される。 `/'、`./'、`../' で開始されるコマンドはパス探索を行わない。これは組み込みコマンド . にも適用される。
この形式で指定しても、カレントディレクトリのサブディレクトリにある実行形式のファイルを探索するので注意すること。この探索は、コマンドサーチパスに `.' があろうがなかろうが、このオプションの探索より先に発生する。
POSIX_BUILTINS <K> <S>
このオプションがセットされているとき、組み込みコマンド command によってシェルの組み込みコマンドを実行できる。シェル関数や特殊な組み込みコマンドの前に指定した変数割り当ては、コマンドが終了した後でも有効になる。ただし、 command の前に特殊な組み込みコマンドがあった場合を除く。特殊な組み込みコマンドとは、 .、:、break、continue、declare、eval、exit、export、integer、local、readonly、return、set、shift、source、times、trap、unset である。
PRINT_EIGHT_BIT
補完リストその他でも8ビット文字を表示する。システムが8ビット文字を正しく表示できない場合に、このオプションは必要ない。
PROMPT_BANG <K>
セットされているとき、 `!' をプロンプト拡張で特殊文字として扱う。 `Prompt Expansion' を参照のこと。
PROMPT_CR (+V) <D>
ラインエディタのプロンプトを表示する直前に復帰文字を出力する。行がどこから開始するかラインエディタがわかっている場合に複数行エディットが可能になるため、このオプションはデフォルトでセットされている。
PROMPT_PERCENT <C> <Z>
セットされているとき、 `%' をプロンプト拡張で特殊文字として扱う。 `Prompt Expansion' を参照のこと。
PROMPT_SUBST <K>
セットされているとき、プロンプトで変数拡張、コマンド置換、計算拡張が実行される。
PUSHD_IGNORE_DUPS
ディレクトリスタックに同じディレクトリの複数のコピーを push しない。
PUSHD_MINUS
ディレクトリスタックに数を与えるとき、 `+' と `-' の意味を交換する。
PUSHD_SILENT (-E)
pushd と popd で、ディレクトリスタックを表示しない。
PUSHD_TO_HOME (-D)
pushd に引数を与えないと、 `pushd $HOME' として動作する。
RC_EXPAND_PARAM (-P)
`foo${xx}bar' の形式で配列を置換するとき、たとえば xx の値が (a b c) だったとすると、 `fooa b cbar' ではなく `fooabar foobbar foocbar' に置換される。
RC_QUOTES
シングルクォートで囲まれた文字列内部でシングルクォート自身を表現する時に `''' による表現を許可する。 $'...' の形式のクォートされた文字列には適用できないが、バックスラッシュを前置したシングルクォートは可能である。
RCS (+f) <D>
起動時に /etc/zshenv を読み込んだあとで、 .zshnv、/etc/zprofile、.zprofile、/etc/zshrc、.zshrc、/etc/zlogin、.zlogin、.zlogout など、 `Files' の章で記述されたファイルを読み込む。このオプションが解除されても /etc/zshenv は読み込まれるが、他のファイルは読まれない。このオプションは、現在読み込まれているファイルの後で残りのスタートアップファイルを阻害するという目的のために、いつでもセットできる。
REC_EXACT (-S)
補完において、曖昧さがあっても正確なマッチを認識する。
RESTRICTED (-r)
制限モードになる。このオプションは unsetopt では変更できず、関数の中で設定した場合は LOCAL_OPTIONS オプションに関わらずグローバルに変化を与える。 `Restricted Shell' の章を参照のこと。
RM_STAR_SILENT (-H) <K> <S>
`rm *' や `rm path/*' を実行しようとする前にユーザに確認を求めない。
RM_STAR_WAIT
`rm *' や `rm path/*' の実行の前のユーザへの確認時に、10秒間だけ待ち、その間のいかなる入力も無視する。これは、内容をよく把握する前に反射的に `yes' と返答する問題を回避する。この待機と確認は、 ZLE で(タブを使って) `*' を拡張することでいつでも回避できる。
SHARE_HISTORY <K>
このオプションはヒストリファイルから新しいコマンドをインポートするのと、入力したコマンドをヒストリファイルに書き出すのの両方を行う(後者は INC_APPEND_HISTORY と似ている)。ヒストリ行は EXTENDED_HISTORY のようにタイムスタンプつきで出力される(これは、ファイルの読み込み途中で再度書かれた時の場所の特定に役にたつ)。
デフォルトでは、ヒストリ移動コマンドはインポートした行をローカル行のように訪れることができるが、これは zle バインディングの set-local-history をオンオフすることでトグルできる。いくつかのコマンドでインポートされたコマンドを無視するようにする zle ウィジェットを作ることもできる。
インポートされたコマンドをもっと制御したい場合には、 SHARE_HISTORY はオフにして、 INC_APPEND_HISTORY をオンにし、必要に応じて `fc -RI' を手動で実行してコマンドをインポートするとよい。
SH_FILE_EXPANSION <K> <S>
ファイル名拡張(~拡張など)は、変数拡張やコマンド置換、計算拡張やブレース拡張の前に行う。このオプションが解除されていると、ブレース拡張の後に実行される。したがって `~$USERNAME' や `{pflastad,rc}' が機能するようになる。
SH_GLOB <K> <S>
変数やコマンド置換結果得られたグロッビングにおいて、またシェルがパターンを受け付ける他の場所のいくつかで、 `('、'|'、')' および '<' の特殊な意味を無効化する。このオプションは zsh が sh や ksh として呼び出されたときにデフォルトでセットされる。
SHIN_STDIN (-s, ksh: -s)
コマンドは標準入力から読まれている。 -c オプションで指定されるコマンドがなく、コマンドのファイルも指定されていなければ、コマンドは標準入力から読まれる。 SHIN_STDIN がコマンド行で明示的に指定されると、さもなくばファイルとして扱われる引数は、通常のポジションパラメタとし扱われるようになる。このオプションをコマンド行からセットしたり解除したりすることは、そのシェルの動いている間のオプションの状態に必ずしも影響を及ぼすわけではない。これは純粋にコマンドが標準入力から実際に読まれるかどうかを示すものに過ぎない。この値はコマンド行以外の場所で変更することはできない。
SH_NULLCMD <K> <S>
リダイレクションの差異に NULLCMD や READNULLCMD の値を使うのではなく、 `:' コマンドを使う(`Redirection' の章を参照のこと)。
SH_OPTION_LETTERS <K> <S>
このオプションがセットされると、シェルは単一文字オプション(set や setopt で利用される)を ksh のように解釈する。このオプションは、特殊変数 - の値にも影響を与える。
SHORT_LOOPS <C> <Z>
for、repeat、select、if、function などの短形式を許す。
SH_WORD_SPLIT (-y) <K> <S>
クォートされていない変数拡張が行われたあとで、フィールド分割を行う。このオプションは単語の分割には何の影響も与えない(`Parameter Expansion' を参考のこと)。
SINGLE_COMMAND (-t, ksh: -t)
シェルが標準入力から読み込んでいるとき、1つのコマンドを実行したら終了する。また、コマンド行から INTERACTIVE オプションが明示的に指定されない限り、シェルは対話的でなくなる。このオプションの値はコマンド行以外の場所では変更できない。
SINGLE_LINE_ZLE (-M) <K>
複数行ではなく、単一コマンド行編集にする。
SUN_KEYBOARD_HACK (-L)
行がバッククォートで終端し、この行に奇数個のバッククォートがあるとき、末尾のバッククォートを無視する。このオプションは、リターンキーがとても小さくて、バッククォートのキーがリターンのすぐ近くにあるようなキーボードで便利である。
TRANSIENT_RPROMPT
コマンド行を受け入れたときに、右プロンプトを削除する。ターミナル上でカット&ペーストするときに便利かもしれない。
TYPESET_SILENT
解除されていると、オプションなしで `typeset' 系のコマンドを実行したり、割当てる値なしに既存の変数名のリストを渡したりすると、その変数の値を表示する。このオプションがセットされていると、 `-m' オプションで選択された変数しか表示しないようになる。セットされていようがいまいが、 `-p' オプションを使うことはできる。
UNSET (+u, ksh: +u) <K> <S> <Z>
置換するときに、内容のない変数を空白として扱う。でなければエラーになる。
VERBOSE (-v, ksh: -v)
入力された行を表示する。
VI
ZLE がロードされていると、このオプションをセットするのは `bindkey -v' と同じ効果を持つ。加えて、 EMACS オプションを解除する。オフにすることは何の効果も表わさない。このオプション設定は現在のキーマップを反映することを保証しない。このオプションは互換性のために用意されている。 bindkey の方の利用が推奨される。
XTRACE (-x, ksh: -x)
実行されるコマンドと引数を表示する。
ZLE (-Z)
zsh line editor を利用する。端末に接続される対話的シェルではデフォルトでセットされる。

オプションの別名

いくつかのオプションは別名を持つ。これらの別名が出力されることはないが、シェルにオプションを指定する時には普通のオプションと同様に利用できる。

BRACE_EXPAND
NO_IGNORE_BRACES (ksh および bash との互換性)
DOT_GLOB
GLOB_DOTS (bash との互換性)
HASH_ALL
HASH_CMDS (bash との互換性)
HIST_APPEND
APPEND_HISTORY (bash との互換性)
HIST_EXPAND
BANG_HIST (bash との互換性)
LOG
NO_HIST_NO_FUNCTIONS (ksh との互換性)
MAIL_WARN
MAIL_WARNING (bash との互換性)
ONE_CMD
SINGLE_COMMAND (bash との互換性)
PHYSICAL
CHASE_LINKS (ksh および bash との互換性)
PROMPT_VARS
PROMPT_SUBST (bash との互換性)
STDIN
SHIN_STDIN (ksh との互換性)
TRACK_ALL
HASH_CMDS (ksh との互換性)

単一文字オプション

デフォルトのオプションたち

sh/ksh エミュレーションセット