1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
= Complete 組込みコマンド
:encoding: UTF-8
:lang: ja
//:title: Yash マニュアル - Complete 組込みコマンド
dfn:[Complete 組込みコマンド]は{zwsp}link:lineedit.html#completion[コマンドライン補完]において補完候補を生成します。この組込みコマンドは補完関数の実行中にだけ使えます。
[[syntax]]
== 構文
- +complete [-A {{パターン}}] [-R {{パターン}}] [-T] [-P {{接頭辞}}] [-S {{接尾辞}}] [-abcdfghjkuv] [[-O] [-D {{説明}}] {{単語}}...]+
[[description]]
== 説明
補完関数の中でこの組込みコマンドを実行すると、complete コマンドは指定した引数に従って補完候補を生成します。どのオプション・オペランドで候補を生成するにせよ、実際に生成される候補は現在補完しようとしている (コマンドライン上に途中まで入力された) 単語に一致するものに限られます。
[[options]]
== オプション
+-A {{パターン}}+::
+--accept={{パターン}}+::
このオプションを指定すると、指定した{{link:pattern.html[パターン]}}にマッチする候補だけを生成します。このオプションは複数回指定できます (指定した全ての{{パターン}}にマッチする候補だけを生成します)。
+-D {{説明}}+::
+--description={{説明}}+::
このオプションを指定すると、このオプションで指定した{{説明}}が補完の際に候補の説明として表示されます。
+-O+::
+--option+::
生成する候補をコマンドのオプションとみなすようにします。候補を画面上に一覧表示する際に自動的に先頭にハイフンを付加します。
+-P {{接頭辞}}+::
+--prefix={{接頭辞}}+::
このオプションで指定する{{接頭辞}}は現在補完しようとしている単語の接頭辞になっていなければなりません。このオプションを指定すると、候補生成の際にこのオプションで指定した{{接頭辞}}を無視してマッチングを行います。例えば補完しようとしている単語が +file:///home/user/docume+ であり、この URL をファイル名として補完したいとしましょう。この場合は、+complete -P file:// -f+ とすると URL から +file://+ を除いた残りの +/home/user/docume+ の部分に対してファイル名としての補完候補が生成されます。
+-R {{パターン}}+::
+--reject={{パターン}}+::
このオプションを指定すると、指定した{{link:pattern.html[パターン]}}にマッチする候補を生成しません。このオプションは複数回指定できます (指定した{{パターン}}の少なくとも一つにマッチする候補を全て除外します)。
+-S {{接尾辞}}+::
+--suffix={{接尾辞}}+::
生成した各候補の末尾に{{接尾辞}}を付加します。
+-T+::
+--no-termination+::
通常は、補完が終わった後に次の単語をすぐ入力できるように、補完した単語の直後に空白を自動的に挿入しますが、このオプションを指定したときは空白を挿入しません。
=== 補完方式設定のためのオプション
+-a+::
+--alias+::
link:syntax.html#aliases[エイリアス] (+--normal-alias --global-alias+ に同じ)
+--array-variable+::
link:params.html#arrays[配列]
+--bindkey+::
link:_bindkey.html[Bindkey コマンド]で利用可能な{zwsp}link:lineedit.html#commands[行編集コマンド]
+-b+::
+--builtin-command+::
link:builtin.html[組込みコマンド] (+--special-builtin --mandatory-builtin --elective-builtin --extension-builtin --substitutive-builtin+ に同じ)
+-c+::
+--command+::
コマンド (+--builtin-command --external-command --function+ に同じ)
+-d+::
+--directory+::
ディレクトリ
+--dirstack-index+::
ディレクトリスタックのインデックス
+--elective-builtin+::
link:builtin.html#types[任意組込みコマンド]
+--executable-file+::
実行可能ファイル
+--extension-builtin+::
link:builtin.html#types[拡張組込みコマンド]
+--external-command+::
外部コマンド
+-f+::
+--file+::
ファイル (ディレクトリ含む)
+--finished-job+::
終了したジョブの{zwsp}link:job.html#jobid[ジョブ ID]
+--function+::
link:exec.html#function[関数]
+--global-alias+::
グローバル{zwsp}link:syntax.html#aliases[エイリアス]
+-g+::
+--group+::
(ファイルのパーミッションなどにおける) グループ
+-h+::
+--hostname+::
ホスト名
+-j+::
+--job+::
link:job.html#jobid[ジョブ ID]
+-k+::
+--keyword+::
シェルの{zwsp}link:syntax.html#tokens[予約語]
+--mandatory-builtin+::
link:builtin.html#types[必須組込みコマンド]
+--normal-alias+::
通常の (グローバルでない) link:syntax.html#aliases[エイリアス]
+--regular-builtin+::
後方互換性のために残されている古いオプション。
+--extension-builtin --substitutive-builtin+ に同じ。
+--running-job+::
実行中のジョブの{zwsp}link:job.html#jobid[ジョブ ID]
+--scalar-variable+::
(配列を除いた通常の) link:params.html#variables[変数]
+--semi-special-builtin+::
後方互換性のために残されている古いオプション。
+--mandatory-builtin --elective-builtin+ に同じ。
+--signal+::
シグナル
+--special-builtin+::
特殊{zwsp}link:builtin.html[組込みコマンド]
+--stopped-job+::
停止中のジョブの{zwsp}link:job.html#jobid[ジョブ ID]
+--substitutive-builtin+::
link:builtin.html#types[代替組込みコマンド]
+-u+::
+--username+::
ユーザのログイン名
+-v+::
+--variable+::
link:params.html#variables[変数]
+-d+ (+--directory+) オプションを指定せずに +-f+ (+--file+) オプションを指定した場合、+-S …+ (+--suffix=…+) オプションの指定の有無にかかわらず、ディレクトリ名を表す補完候補には接尾辞としてスラッシュが付き、候補の直後には空白が入りません (+-S / -T+ を指定したときと同じ動作)。
link:job.html#jobid[ジョブ ID] の補完は先頭の +%+ を除いた部分に対して行われるので、補完しようとしている単語が既に +%+ を含んでいる場合は +%+ を接頭辞として指定してください。
[[operands]]
== オペランド
Complete コマンドのオペランドは、各オペランドがそれぞれ補完候補として扱われます。指定したオペランドのうち、現在補完しようとしている単語に合うものが補完候補となります。
[[exitstatus]]
== 終了ステータス
候補が少なくとも一つ生成できた場合は、終了ステータスは 0 です。新たな候補が一つも生成できなかったときは、終了ステータスは 1 です。その他のエラーの場合は 2 以上の終了ステータスになります。
[[notes]]
== 補足
Complete コマンドは{zwsp}link:builtin.html#types[任意組込みコマンド]です。
POSIX では complete コマンドの動作は規定されていません。
link:posix.html[POSIX 準拠モード]が有効な場合でも、
link:lineedit.html#completion[補完関数]の実行時には POSIX
準拠モードが一時的に無効になるため、complete コマンドを使用できます。
// vim: set filetype=asciidoc expandtab:
|