diff --git a/ja_JP.eucJP/man/man1/rs.1 b/ja_JP.eucJP/man/man1/rs.1 index c9b4cefa20..6e565679e9 100644 --- a/ja_JP.eucJP/man/man1/rs.1 +++ b/ja_JP.eucJP/man/man1/rs.1 @@ -1,234 +1,235 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rs.1 8.2 (Berkeley) 12/30/93 .\" %FreeBSD: src/usr.bin/rs/rs.1,v 1.9 2002/04/20 12:16:39 charnier Exp % .\" $FreeBSD$ .\" .Dd December 30, 1993 .Dt RS 1 .Os .Sh 名称 .Nm rs .Nd データ配列の整形 .Sh 書式 .Nm .Oo .Fl Oo Cm csCS Oc Ns Op Ar x .Oo Cm kKgGw Oc Ns Op Ar N .Cm tTeEnyjhHmz .Oc .Op Ar rows Op Ar cols .Sh 解説 .Nm ユーティリティは標準入力を読み込み、 その各行が、配列を空白で区切った行ベクトルであるとして解釈し、 その配列をオプションに従って変換し、 結果を標準出力に書き出します。 引数を指定しない場合、 .Nm は、端末で見やすいように、入力をカラム形式 (columnar format) に変換します。 .Pp 入力配列の形状は、その行数と第 1 行目のカラム数から推測します。 それが不都合なら、 .Fl k オプションによって最初の数行を読み飛ばし、 より好都合な行を用いることもできます。 この他のオプションは、入力カラムの解釈を変更するものです。 .Pp 出力配列の形状は引数 .Ar rows および .Ar cols の指定により変化します。これらの引数は正の整数です。 それらの一方だけが正の整数である場合、 .Nm はデータ全体と整合するもう一方の値を計算します。 必要なら、オプションの説明に述べる方法で不足したデータが追加され、 余剰データが削除されます。 行と列の転置など、出力カラム形式を変更するオプションもあります。 .Pp オプションを以下に示します。 .Bl -tag -width indent .It Fl c Ns Ar x 入力カラムの区切りを単一文字 .Ar x とします。 .Ar x を省略すると `^I' であると見なされます。 .It Fl s Ns Ar x .Fl c と似ていますが、 .Ar x 中の最長文字列が区切りとされます。 .It Fl C Ns Ar x 出力カラムの区切りを単一文字 .Ar x とします。 .Ar x を省略すると `^I' であると見なされます。 .It Fl S Ns Ar x .Fl C と似ていますが、文字列 .Ar x が区切り文字となります。 .It Fl t 入力配列の列データを用いて出力配列の行を埋めます。 つまり、 .Ar rows および .Ar cols 指定を優先しつつ、入力を転置します。 .It Fl T .Ar rows および .Ar cols 指定を無視し、入力の純粋な転置結果を出力します。 .It Fl k Ns Ar N 入力の最初の .Ar N 行を無視します。 .It Fl K Ns Ar N .Fl k と似ていますが、無視した各行を表示します。 .It Fl g Ns Ar N 溝 (gutter) の幅 (カラム間のスペース) を .Ar N とします。 通常は 2 です。 .It Fl G Ns Ar N 溝 (gutter) の幅 (カラム間のスペース) として、 最大カラム幅の .Ar N パーセント増しの値を用います。 .It Fl e 入力の各行を単一の配列エントリとみなします。 .It Fl n 第 1 行目より少ないエントリしかない行があれば、 その行にヌルエントリを追加して埋め合わせます。 通常は、エントリの不足分は入力の次の行からエントリをとって埋め合わせます。 .It Fl y 出力の寸法を充たすだけのエントリがない場合、 入力を最初から繰り返し用いて出力を埋め合わせます。 通常は、出力は空白で埋め合わされます。 .It Fl h 入力配列の形状を表示するだけで、処理は何も行ないません。 形状とは単に、行数と、第 1 行目のエントリ数のことです。 .It Fl H .Fl h と似ていますが、各行の長さも表示します。 .It Fl j カラム内でエントリを右揃えにします。 .It Fl w Ns Ar N 画面表示幅を正整数 .Ar N の値に設定します。 通常は 80 です。 .It Fl m 出力配列の末尾から余分な区切り文字を削除しません。 .It Fl z カラム幅を最も大きなエントリにあわせます。 .El .Pp 引数がない場合、 .Nm は入力を転置し、 無視しない最初の行が画面表示幅を越えていなければ、 入力の各行毎に 1 つの配列エントリがあると仮定します。 数値引数をとるオプションで数値指定が省略されていると、 別途指示がない限り数値は 0 とみなされます。 .Sh 使用例 .Nm ユーティリティはいくつかのプログラム (例えば、 .Xr spell , .Xr du , .Xr file , .Xr look , .Xr nm , .Xr who , .Xr wc 1 ) のストリーム出力を、好都合な「ウィンドウ」形式に変換する フィルタとして利用できます。例えば .Bd -literal -offset indent who | rs .Ed .Pp これと同様な出力を行なうほとんどのプログラムに対して .Nm は十分な機能を提供しますが、 .Xr ls 1 には既にこの機能が組み込まれています。 .Pp ストリーム入力をベクトルに変換して出力し、それをまた元に戻すには、 次のようにします。 .Bd -literal -offset indent rs 1 0 | rs 0 1 .Ed .Pp -各要素が 1 から 100 までの乱数から成る 10×10 行列とその転置行列を +.\" ×がうまく表示されないので \[mu] 使用 +各要素が 1 から 100 までの乱数から成る 10 \[mu] 10 行列とその転置行列を 生成するには、以下のようにします。 .Bd -literal -offset indent jot \-r 100 | rs 10 10 | tee array | rs \-T > tarray .Ed .Pp .Xr vi 1 エディタにおいて、行あたり 9 要素の複数行ベクトルからなるファイルに対して 挿入や削除を行ない、 その後 9 カラム形式に整形するには、次のようにします。 .Bd -literal -offset indent :1,$!rs 0 9 .Ed .Pp 最後に、 あるデータベースを 4 行ずつのフィールドの最初の行でソートしたいなら、 以下のようにしてみるとよいでしょう。 .Bd -literal -offset indent rs \-eC 0 4 | sort | rs \-c 0 1 .Ed .Sh 関連項目 .Xr jot 1 , .Xr pr 1 , .Xr sort 1 , .Xr vi 1 .Sh バグ .Bl -item .It 2 次元配列しか扱えません。 .It 現在のアルゴリズムはファイル全体をメモリに読み込むため、 メモリに入りきらないファイルは整形できません。 .It 文字位置によってフィールドを定義することは、まだできません。 .It カラムを並べ換えることも、まだ不可能です。 .It オプションが多すぎます。 .El diff --git a/ja_JP.eucJP/man/man5/termcap.5 b/ja_JP.eucJP/man/man5/termcap.5 index 9c061c42be..9232497ce5 100644 --- a/ja_JP.eucJP/man/man5/termcap.5 +++ b/ja_JP.eucJP/man/man5/termcap.5 @@ -1,2083 +1,2084 @@ .\" Copyright (c) 1985, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)termcap.5 8.3 (Berkeley) 4/16/94 .\" .\" /*************************************************************************** .\" * COPYRIGHT NOTICE * .\" **************************************************************************** .\" * ncurses is copyright (C) 1992-1995 * .\" * Zeyd M. Ben-Halim * .\" * zmbenhal@netcom.com * .\" * Eric S. Raymond * .\" * esr@snark.thyrsus.com * .\" * * .\" * Permission is hereby granted to reproduce and distribute ncurses * .\" * by any means and for any fee, whether alone or as part of a * .\" * larger distribution, in source or in binary form, PROVIDED * .\" * this notice is included with any such distribution, and is not * .\" * removed from any of its header files. Mention of ncurses in any * .\" * applications linked with it is highly appreciated. * .\" * * .\" * ncurses comes AS IS with no warranty, implied or expressed. * .\" * * .\" ***************************************************************************/ .\" .\" %FreeBSD: src/share/termcap/termcap.5,v 1.22 2002/08/12 19:13:22 ru Exp % .\" .\" $FreeBSD$ .\" FreeBSD jpman project 訳語表 .\" WORD: terminal 端末 .\" WORD: text テキスト .\" WORD: convention 約束 .\" WORD: virtual terminal 仮想端末 .\" WORD: print 印字 .\" WORD: display 描画 .\" WORD: screen 画面 .\" WORD: CRT CRT .\" WORD: attribute 属性 .\" WORD: underline 下線 .\" WORD: standout 強調表示 .\" WORD: column 桁 .\" WORD: row 行 .\" WORD: carriage return キャリッジリターン .\" WORD: home など ホーム(ホームポジション)、home(home キー) .\" など、キーそのものについては英語のままとした .\" WORD: foreground color 前景色 .\" WORD: background color 背景色 .\" WORD: bottom margin 下マージン .\" WORD: top margin 上マージン .\" WORD: bold mode ボールドモード .\" WORD: scroll forward 前進スクロール .\" WORD: scroll backward 後退スクロール .\" WORD: glitch グリッチ (他の端末と不整合な機能) .\" その他 Beehive はメーカ名です(.Ss Glitches and Braindamages 参照)。 .Dd April 16, 1994 .Dt TERMCAP 5 .Os .Sh 名称 .Nm termcap .Nd 端末ケーパビリティのデータベース .Sh 書式 .Nm .Sh 解説 .Nm ファイルは端末に関するデータベースであり、例えば .Xr \&vi 1 や .Xr ncurses 3 が使用します。 .Nm には、端末が持つケーパビリティと、 操作がどのように行われるのかが記述されています。 パディングの必要性および初期化シーケンスも .Nm に記述されています。 .Pp .Nm のエントリは `:' で区切られた複数個のフィールドからなります。 各端末の最初のエントリは、`|' 文字で区切った端末名です。 最初の名前は、その端末の最も一般的な省略形です。 最後の名前は端末を完全に識別するための長い名前であり、 その他は端末名の類義語です。 最後以外の名前は小文字を使い、空白を含まないようにしてください; 最後の名前は、可読性のために大文字や空白を含んでかまいません。 .Pp 端末名 (最後の冗長なエントリを除く) は次の約束に従い選んでください。 端末を構成するハードウェアの特定の一部を、 .Dq hp2621 のように根幹の名前として選びます。 この名前はハイフンを含んではなりません。 ハードウェアのモードやユーザのプリファレンスは、 ハイフンとモード指示子を追加して示します。 ですから、132 桁モードの .Dq vt100 は .Dq vt100-w になります。可能ならば、以下の接尾辞を使用してください: .Pp .Bl -column indent "With automatic margins (usually default)xx" -offset indent .Sy "接尾辞 意味 例" -w 広いモード (80 桁超) vt100-w -am 自動マージン付 (通常はデフォルト) vt100-am -nam 自動マージン無し vt100-nam .Pf \- Ar n Ta No "画面上の行数 aaa-60" -na 矢印キー無し (ローカルのままにする) concept100-na .Pf \- Ar \&np Ta No "メモリページ数 concept100-4p" -rv 反転表示 concept100-rv .El .Sh ケーパビリティ 記述フィールドに、ケーパビリティの意味を示そうとしています。 記述フィールドには次のようなコードが書いてあることがあります: .Pp .Bl -tag -width #[1-9] .It (P) パディングが指定されるかもしれないことを表します。 .It #[1-9] 記述フィールドでは、文字列が (#\fIi\fP) として与えられる引数として .Xr tparm や .Xr tgoto を介して渡されることを示します。 .It (P*) 影響を受ける行数に従いパディングが変化することを示します。 .It (#\d\fIi\fP\u) \fIi\fP 番目のパラメータを表します。 .El .Pp 以下、ブール値のケーパビリティです: .Bd -literal \fBブール値 TCap 記述\fR \fB変数 コード\fR auto_left_margin bw cursor_left は桁 0 から最後の桁に回り込む auto_right_margin am 端末は自動マージンを持つ no_esc_ctlc xb beehive (f1=escape, f2=ctrl C) ceol_standout_glitch xs 強調表示は上書きによって消去されない (hp) eat_newline_glitch xn 80 桁より後の改行は無視される (concept) erase_overstrike eo 空白を上打ちすることで消去可能 generic_type gn 一般的な行タイプ hard_copy hc ハードコピー端末 has_meta_key km メタキーを持ち、最上位ビットをセットする has_status_line hs 追加のステータス行を持つ insert_null_glitch in 挿入モードはナルを区別する memory_above da 画面より上の描画が保存される memory_below db 画面より下の描画が保存される move_insert_mode mi 挿入モードでの移動が安全 move_standout_mode ms 強調表示モードでの移動が安全 over_strike os 端末は上打ちが可能 status_line_esc_ok es ステータス行でエスケープを使用可能 dest_tabs_magic_smso xt 破壊的タブ、強調文字の奇妙な動作 (t1061) tilde_glitch hz ~ を印字できない (hazeltine) transparent_underline ul 下線文字の上打ち xon_xoff xo 端末は xon/xoff のハンドシェークを使用 needs_xon_xoff nx パディングは動作しないので xon/xoff が必要 prtr_silent 5i プリンタ出力は画面にエコーしない hard_cursor HC カーソルが見にくい non_rev_rmcup NR enter_ca_mode は exit_ca_mode を反転しない no_pad_char NP パディング文字が存在しない non_dest_scroll_region ND スクロール領域が非破壊的 can_change cc 端末は既存の色を再定義可能 back_color_erase ut 画面は背景色で消される hue_lightness_saturation hl 端末は HLS カラー表現のみ使用 (tektronix) col_addr_glitch YA 桁位置指定および micro_column_address ケーパビリティは正方向の動きのみ cr_cancels_micro_mode YB cr を使用するとマイクロモードがオフになる has_print_wheel YC オペレータが文字セットを変更する必要がある プリンタ row_addr_glitch YD row_address および micro_row_address は 正方向の動きのみ semi_auto_right_margin YE 最終桁で印字すると cr となる cpi_changes_res YF 文字ピッチを変えると解像度が変わる lpi_changes_res YG 行ピッチを変えると解像度が変わる .Ed .Pp 以下、数値のケーパビリティです: .Bd -literal \fB数値 TCap 記述\fR \fB変数 コード\fR columns co 1 行の桁数 init_tabs it タブの初期設定は # 個の空白ごと lines li 画面もしくはページの行数 lines_of_memory lm 行より大きい場合はメモリの行数、 0 の場合はさまざま .\" => は大小関係を表すのではない See .Sh その他 magic_cookie_glitch sg enter_standout_mode や exit_standout_mode が残す空白文字数 padding_baud_rate pb パディングが必要な最低ボーレート virtual_terminal vt 仮想端末番号 (CB/unix) width_status_line ws ステータス行の桁数 num_labels Nl 画面上のラベル数 label_height lh 各ラベルの行数 label_width lw 各ラベルの桁数 max_attributes ma 端末が扱える属性の最大の組み合わせ maximum_windows MW 定義可能なウィンドウ数の最大 magic_cookie_glitch_ul ug 下線により残される空白数 # # 以下は SVr4 のカラーサポートにより導入 # max_colors Co 画面上の最大色数 max_pairs pa 画面上の色の組の最大数 no_color_video NC 色付きでは使用できないビデオ属性 # # 以下の数値ケーパビリティは SVr4.0 の term 構造体に存在しますが、 # マニュアルには記述されていません。 # これらは SVr4 のプリンタサポートにより追加されました。 # buffer_capacity Ya 印字前にバッファされるバイト数 dot_vert_spacing Yb 1 インチあたりのピン数で表した垂直ピン間隔 dot_horz_spacing Yc 1 インチあたりのドット数で表した水平 ドット間隔 max_micro_address Yd micro_..._address での最大値 max_micro_jump Ye parm_..._micro での最大値 micro_char_size Yf マイクロモードでの文字サイズ micro_line_size Yg マイクロモードでの行サイズ number_of_pins Yh プリントヘッドのピン数 output_res_char Yi 行あたりのユニット数による水平解像度 output_res_line Yj 行あたりのユニット数による垂直解像度 output_res_horz_inch Yk インチあたりのユニット数による水平解像度 output_res_vert_inch Yl インチあたりのユニット数による垂直解像度 print_rate Ym 1 秒あたりの文字数による印字レート wide_char_size Yn 倍幅モードでの文字ステップサイズ buttons BT マウスのボタン数 bit_image_entwining Yo 各ビットイメージ行として渡される数 bit_image_type Yp ビットイメージデバイスのタイプ .Ed .Pp 以下、文字列ケーパビリティです: .Bd -literal \fB文字列 TCap 記述\fR \fB変数 コード\fR back_tab bt 後退タブ (P) bell bl 可聴シグナル (ベル) (P) carriage_return cr キャリッジリターン (P*) change_scroll_region cs 領域を行 #1 から行 #2 までに変更 (P) clear_all_tabs ct 全タブストップをクリア (P) clear_screen cl 画面を消去しカーソルをホームに移動 (P*) clr_eol ce 行末までクリア (P) clr_eos cd 画面末までクリア (P*) column_address ch 絶対指定での水平位置 #1 (P) command_character CC 端末がプロトタイプで設定可能なコマンド文字 cursor_address cm 行 #1 桁 #2 に移動 cursor_down do 1 行下に移動 cursor_home ho カーソルをホームに移動 cursor_invisible vi カーソルを見えなくする cursor_left le 1 つ左に移動 cursor_mem_address CM メモリ相対のカーソル位置指定 cursor_normal ve 通常のカーソル表示にする (cursor_invisible/cursor_visible の無効化) cursor_right nd 1 つ右に移動 cursor_to_ll ll 最終行の最初の桁 cursor_up up 1 行上に移動 cursor_visible vs カーソルを非常に見易くする delete_character dc 文字削除 (P*) delete_line dl 行削除 (P*) dis_status_line ds ステータス行を無効にする down_half_line hd 半行下に移動 enter_alt_charset_mode as 別の文字セット開始 (P) enter_blink_mode mb 点滅オン enter_bold_mode md ボールド (さらに明るい) モードオン enter_ca_mode ti cursor_address を使用するプログラムを開始 する文字列 enter_delete_mode dm 削除モードへ入る enter_dim_mode mh 半輝度モードオン enter_insert_mode im 挿入モードへ入る enter_secure_mode mk ブランクモードオン (文字が見えません) enter_protected_mode mp 保護モードオン enter_reverse_mode mr 反転表示モードオン enter_standout_mode so 強調表示モード開始 enter_underline_mode us 下線モード開始 erase_chars ec #1 個文字を削除 (P) exit_alt_charset_mode ae 別の文字セット終了 (P) exit_attribute_mode me 全属性をオフ exit_ca_mode te cup 使用のプログラムを終了する文字列 exit_delete_mode ed 削除モード終了 exit_insert_mode ei 挿入モードから抜ける exit_standout_mode se 強調表示モードから抜ける exit_underline_mode ue 下線モードから抜ける flash_screen vb 可視ベル (カーソルは移動しません) form_feed ff ハードコピー端末でのページ排出 (P*) from_status_line fs ステータス行からの復帰 init_1string i1 初期化文字列 init_2string is 初期化文字列 init_3string i3 初期化文字列 init_file if 初期化ファイルの名前 insert_character ic 文字挿入 (P) insert_line al 行挿入 (P*) insert_padding ip 挿入された文字の後にパディングを挿入 key_backspace kb backspace キー key_catab ka clear-all-tabs キー key_clear kC clear-screen または erase キー key_ctab kt clear-tab キー key_dc kD delete-character キー key_dl kL delete-line キー key_down kd down-arrow キー key_eic kM 挿入モードで mir や smir により送られる key_eol kE clear-to-end-of-line キー key_eos kS clear-to-end-of-screen キー key_f0 k0 F0 ファンクションキー key_f1 k1 F1 ファンクションキー key_f10 k; F10 ファンクションキー key_f2 k2 F2 ファンクションキー key_f3 k3 F3 ファンクションキー key_f4 k4 F4 ファンクションキー key_f5 k5 F5 ファンクションキー key_f6 k6 F6 ファンクションキー key_f7 k7 F7 ファンクションキー key_f8 k8 F8 ファンクションキー key_f9 k9 F9 ファンクションキー key_home kh home キー key_ic kI insert-character キー key_il kA insert-line キー key_left kl left-arrow キー key_ll kH last-line キー key_npage kN next-page キー key_ppage kP prev-page キー key_right kr right-arrow キー key_sf kF scroll-forward キー key_sr kR scroll-backward キー key_stab kT set-tab キー key_up ku up-arrow キー keypad_local ke 'キーボード送出' モードから抜ける keypad_xmit ks 'キーボード送出' モードに入る lab_f0 l0 非 f0 の時、ファンクションキー f0 のラベル lab_f1 l1 非 f1 の時、ファンクションキー f1 のラベル lab_f10 la 非 f10 の時、ファンクションキー f10 の ラベル lab_f2 l2 非 f2 の時、ファンクションキー f2 のラベル lab_f3 l3 非 f3 の時、ファンクションキー f3 のラベル lab_f4 l4 非 f4 の時、ファンクションキー f4 のラベル lab_f5 l5 非 f5 の時、ファンクションキー f5 のラベル lab_f6 l6 非 f6 の時、ファンクションキー f6 のラベル lab_f7 l7 非 f7 の時、ファンクションキー f7 のラベル lab_f8 l8 非 f8 の時、ファンクションキー f8 のラベル lab_f9 l9 非 f9 の時、ファンクションキー f9 のラベル meta_off mo メタモードオフ meta_on mm メタモードオン (8 ビット目をオン) newline nw 改行 (cr の後に lf が来たように振舞います) pad_char pc パディング文字 (ナルの代り) parm_dch DC #1 文字を削除 (P*) parm_delete_line DL #1 行を削除 (P*) parm_down_cursor DO #1 行下に移動 (P*) parm_ich IC #1 文字を挿入 (P*) parm_index SF #1 行の前進スクロール (P) parm_insert_line AL #1 行を挿入 (P*) parm_left_cursor LE #1 文字左に移動 (P) parm_right_cursor RI #1 文字右に移動 (P*) parm_rindex SR #1 行の後退スクロール (P) parm_up_cursor UP #1 行上に移動 (P*) pkey_key pk 文字列 #2 をタイプする プログラムファンクションキー #1 pkey_local pl 文字列 #2 を実行する プログラムファンクションキー #1 pkey_xmit px 文字列 #2 を転送する プログラムファンクションキー #1 print_screen ps 画面の内容を印字 prtr_off pf プリンタオフ prtr_on po プリンタオン repeat_char rp 文字 #1 を #2 回繰り返す (P*) reset_1string r1 リセット文字列 reset_2string r2 リセット文字列 reset_3string r3 リセット文字列 reset_file rf リセットファイルの名前 restore_cursor rc save_cursor の最後の位置へカーソルを戻す row_address cv 絶対指定での垂直位置 #1 (P) save_cursor sc 現在のカーソル位置を保存 (P) scroll_forward sf テキストを上にスクロール (P) scroll_reverse sr テキストを下にスクロール (P) set_attributes sa ビデオ属性 #1-#9 を定義 (PG9) set_tab st 全ての行において今いる桁にタブを設定 set_window wi 現在のウィンドウを、行 #1-#2 桁 #3-#4 に 設定 tab ta 次の 8 スペースハードウェアタブストップへ タブ to_status_line ts ステータス行へ移動 underline_char uc 文字に下線を引きその後に移動 up_half_line hu 半行上に移動 init_prog iP 初期化プログラムのパス名 key_a1 K1 キーパッドの左上キー key_a3 K3 キーパッドの右上キー key_b2 K2 キーパッドの中央キー key_c1 K4 キーパッドの左下キー key_c3 K5 キーパッドの右下キー prtr_non pO #1 バイトだけプリンタをオンする termcap_init2 i2 2 番目の初期化文字列 termcap_reset rs 端末リセット文字 # # SVr1 のケーパビリティはここまでです。 # IBM の terminfo はここまでは SVr4 と同じですが、ここから先は異なります。 # char_padding rP insert_padding と似ていますが挿入モード時 に使用 acs_chars ac 図形文字セットの組 - def=vt100 plab_norm pn プログラムラベル #1 は文字列 #2 を表示 key_btab kB back-tab キー enter_xon_mode SX xon/xoff ハンドシェークオン exit_xon_mode RX xon/xoff ハンドシェークオフ enter_am_mode SA 自動マージンオン exit_am_mode RA 自動マージンオフ xon_character XN XON 文字 xoff_character XF XOFF 文字 ena_acs eA 別の文字セットを有効にする label_on LO ソフトラベルオン label_off LF ソフトラベルオフ key_beg @1 begin キー key_cancel @2 cancel キー key_close @3 close キー key_command @4 command キー key_copy @5 copy キー key_create @6 create キー key_end @7 end キー key_enter @8 enter/send キー key_exit @9 exit キー key_find @0 find キー key_help %1 help キー key_mark %2 mark キー key_message %3 message キー key_move %4 move キー key_next %5 next キー key_open %6 open キー key_options %7 options キー key_previous %8 previous キー key_print %9 print キー key_redo %0 redo キー key_reference &1 reference キー key_refresh &2 refresh キー key_replace &3 replace キー key_restart &4 restart キー key_resume &5 resume キー key_save &6 save キー key_suspend &7 suspend キー key_undo &8 undo キー key_sbeg &9 シフト状態の begin キー key_scancel &0 シフト状態の cancel キー key_scommand *1 シフト状態の command キー key_scopy *2 シフト状態の copy キー key_screate *3 シフト状態の create キー key_sdc *4 シフト状態の delete char キー key_sdl *5 シフト状態の delete line キー key_select *6 select キー key_send *7 シフト状態の end キー key_seol *8 シフト状態の end-of-line キー key_sexit *9 シフト状態の exit キー key_sfind *0 シフト状態の find キー key_shelp #1 シフト状態の help キー key_shome #2 シフト状態の home キー key_sic #3 シフト状態の insert char キー key_sleft #4 シフト状態の left キー key_smessage %a シフト状態の message キー key_smove %b シフト状態の move キー key_snext %c シフト状態の next キー key_soptions %d シフト状態の options キー key_sprevious %e シフト状態の previous キー key_sprint %f シフト状態の print キー key_sredo %g シフト状態の redo キー key_sreplace %h シフト状態の replace キー key_sright %i シフト状態の right キー key_srsume %j シフト状態の resume キー key_ssave !1 シフト状態の save キー key_ssuspend !2 シフト状態の suspend キー key_sundo !3 シフト状態の undo キー req_for_input RF 次の入力文字を送る (pty で使用) key_f11 F1 F11 ファンクションキー key_f12 F2 F12 ファンクションキー key_f13 F3 F13 ファンクションキー key_f14 F4 F14 ファンクションキー key_f15 F5 F15 ファンクションキー key_f16 F6 F16 ファンクションキー key_f17 F7 F17 ファンクションキー key_f18 F8 F18 ファンクションキー key_f19 F9 F19 ファンクションキー key_f20 FA F20 ファンクションキー key_f21 FB F21 ファンクションキー key_f22 FC F22 ファンクションキー key_f23 FD F23 ファンクションキー key_f24 FE F24 ファンクションキー key_f25 FF F25 ファンクションキー key_f26 FG F26 ファンクションキー key_f27 FH F27 ファンクションキー key_f28 FI F28 ファンクションキー key_f29 FJ F29 ファンクションキー key_f30 FK F30 ファンクションキー key_f31 FL F31 ファンクションキー key_f32 FM F32 ファンクションキー key_f33 FN F33 ファンクションキー key_f34 FO F34 ファンクションキー key_f35 FP F35 ファンクションキー key_f36 FQ F36 ファンクションキー key_f37 FR F37 ファンクションキー key_f38 FS F38 ファンクションキー key_f39 FT F39 ファンクションキー key_f40 FU F40 ファンクションキー key_f41 FV F41 ファンクションキー key_f42 FW F42 ファンクションキー key_f43 FX F43 ファンクションキー key_f44 FY F44 ファンクションキー key_f45 FZ F45 ファンクションキー key_f46 Fa F46 ファンクションキー key_f47 Fb F47 ファンクションキー key_f48 Fc F48 ファンクションキー key_f49 Fd F49 ファンクションキー key_f50 Fe F50 ファンクションキー key_f51 Ff F51 ファンクションキー key_f52 Fg F52 ファンクションキー key_f53 Fh F53 ファンクションキー key_f54 Fi F54 ファンクションキー key_f55 Fj F55 ファンクションキー key_f56 Fk F56 ファンクションキー key_f57 Fl F57 ファンクションキー key_f58 Fm F58 ファンクションキー key_f59 Fn F59 ファンクションキー key_f60 Fo F60 ファンクションキー key_f61 Fp F61 ファンクションキー key_f62 Fq F62 ファンクションキー key_f63 Fr F63 ファンクションキー clr_bol cb 行頭までクリア clear_margins MC 左右のソフトマージンをクリア set_left_margin ML 左のソフトマージンを設定 set_right_margin MR 右のソフトマージンを設定 label_format Lf ラベルフォーマット set_clock SC 時刻を #1 時 #2 分 #3 秒に設定 display_clock DK 位置 (#1,#2) に時計を表示 remove_clock RC 時計を取り除く create_window CW ウィンドウ #1 を #2, #3 から #4, #5 までと 定義 goto_window WG ウィンドウ #1 に移動 hangup HU 電話をハングアップする dial_phone DI 番号 #1 にダイヤルする quick_dial QD チェックせずに番号 #1 にダイヤルする tone TO タッチトーンダイヤルを選択 pulse PU パルスダイヤルを選択 flash_hook fh スイッチフックをフラッシュする fixed_pause PA 2-3 秒待つ wait_tone WA ダイヤルトーンを待つ user0 u0 ユーザ文字列 #0 user1 u1 ユーザ文字列 #1 user2 u2 ユーザ文字列 #2 user3 u3 ユーザ文字列 #3 user4 u4 ユーザ文字列 #4 user5 u5 ユーザ文字列 #5 user6 u6 ユーザ文字列 #6 user7 u7 ユーザ文字列 #7 user8 u8 ユーザ文字列 #8 user9 u9 ユーザ文字列 #9 # # SVr4 は以下のケーパビリティを追加してカラーをサポートしました # orig_pair op デフォルトのペアを元の値に戻す orig_colors oc 色のペア全てを元に戻す initialize_color Ic 色 #1 を (#2,#3,#4) に設定 initialize_pair Ip 色のペア #1 を fg=(#2,#3,#4), bg=(#5,#6,#7) に設定 set_color_pair sp 現在の色のペアを #1 に設定 set_foreground Sf 前景色を #1 に設定 set_background Sb 背景色を #1 に設定 # # SVr4 は以下のケーパビリティを追加してプリンタをサポートしました # change_char_pitch ZA 1 インチあたりの文字数を変更 change_line_pitch ZB 1 インチあたりの行数を変更 change_res_horz ZC 水平解像度を変更 change_res_vert ZD 垂直解像度を変更 define_char ZE 文字を定義 enter_doublewide_mode ZF 倍幅モードに入る enter_draft_quality ZG ドラフト印字モードに入る enter_italics_mode ZH イタリックモードに入る enter_leftward_mode ZI キャリッジの左向き移動開始 enter_micro_mode ZJ マイクロ移動モードに入る enter_near_letter_quality ZK NLQ 印字モードに入る enter_normal_quality ZL 通常品質印字モードに入る enter_shadow_mode ZM シャドウプリントモード開始 enter_subscript_mode ZN 下付き文字モード enter_superscript_mode ZO 上付き文字モード enter_upward_mode ZP キャリッジの上向き移動開始 exit_doublewide_mode ZQ 倍幅印字モード終了 exit_italics_mode ZR イタリックモード終了 exit_leftward_mode ZS 左向き移動モード終了 exit_micro_mode ZT マイクロ移動モード終了 exit_shadow_mode ZU シャドウプリントモード終了 exit_subscript_mode ZV 下付き文字モード終了 exit_superscript_mode ZW 上付き文字モード終了 exit_upward_mode ZX 逆向き文字移動終了 micro_column_address ZY マイクロモードの column_address micro_down ZZ マイクロモードの cursor_down micro_left Za マイクロモードの cursor_left micro_right Zb マイクロモードの cursor_right micro_row_address Zc マイクロモードの row_address micro_up Zd マイクロモードの cursor_up order_of_pins Ze ソフトウェアビットを印字ヘッドピンに あわせる .\" Match software bits to print-head pins ? parm_down_micro Zf マイクロモードの parm_down_cursor parm_left_micro Zg マイクロモードの parm_left_cursor parm_right_micro Zh マイクロモードの parm_right_cursor parm_up_micro Zi マイクロモードの parm_up_cursor select_char_set Zj 文字セットの選択 set_bottom_margin Zk 現在の行を下マージンに設定 set_bottom_margin_parm Zl 下マージンを行 #1 または下から #2 行に設定 set_left_margin_parm Zm 左 (右) マージンを桁 #1 (#2) に設定 set_right_margin_parm Zn 右マージンを桁 #1 に設定 set_top_margin Zo 上マージンを現在の行に設定 set_top_margin_parm Zp 上 (下) マージンを行 #1 (#2) に設定 start_bit_image Zq ビットイメージグラフィクスの印刷開始 start_char_set_def Zr 文字セットの定義開始 stop_bit_image Zs ビットイメージグラフィクスの印刷停止 stop_char_set_def Zt 文字セットの定義終了 subscript_characters Zu 下付き文字となりうる文字のリスト superscript_characters Zv 上付き文字となりうる文字のリスト these_cause_cr Zw 印字すると CR となる文字 zero_motion Zx 次の文字表示では移動しない # # 以下の文字列ケーパビリティは SVr4.0 の term 構造体にありますが、 # マニュアルページには記述されていません。 # char_set_names Zy 文字セット名のリスト key_mouse Km マウスイベントが発生した mouse_info Mi マウス状態の情報 req_mouse_pos RQ マウス位置の要求 get_mouse Gm curses がボタンイベントを取得すべき set_a_foreground AF ANSI 前景色を設定 set_a_background AB ANSI 背景色を設定 pkey_plab xl 文字列 #2 をタイプし、文字列 #3 を表示する プログラムファンクションキー device_type dv 言語/コードセットサポートの表示 code_set_init ci 複数コードセットシーケンスの初期化 set0_des_seq s0 コードセット 0 へシフト (EUC セット 0, ASCII) set1_des_seq s1 コードセット 1 へシフト set2_des_seq s2 コードセット 2 へシフト set3_des_seq s3 コードセット 3 へシフト set_lr_margin ML 左右マージンをそれぞれ #1, #2 に設定 set_tb_margin MT 上下マージンをそれぞれ #1, #2 に設定 bit_image_repeat Xy ビットイメージセル #1 を #2 回繰り返す bit_image_newline Zz ビットイメージの次の行に移動 bit_image_carriage_return Yv 同一行の先頭に移動 color_names Yw 色 #1 の名前を与える define_bit_image_region Yx 長方形のビットイメージ領域を定義 end_bit_image_region Yy ビットイメージ領域の終了 set_color_band Yz 色リボン #1 に変更 set_page_length YZ ページ長を #1 行に設定 # # SVr4 は以下のケーパビリティを追加し、直接 PC クローンをサポートしました # display_pc_char S1 PC 文字を表示 enter_pc_charset_mode S2 PC 文字表示モードに入る exit_pc_charset_mode S3 PC 文字表示モード終了 enter_scancode_mode S4 PC スキャンコードモードに入る exit_scancode_mode S5 PC スキャンコードモードから抜ける pc_term_options S6 PC 端末オプション scancode_escape S7 スキャンコードエミュレーションのための エスケープ alt_scancode_esc S8 スキャンコードエミュレーションのための 別のエスケープ # # XSI curses 標準は、以下のケーパビリティを追加しました。 # enter_horizontal_hl_mode Xh 水平ハイライトモードに入る enter_left_hl_mode Xl 左ハイライトモードに入る enter_low_hl_mode Xo 下ハイライトモードに入る enter_right_hl_mode Xr 右ハイライトモードに入る enter_top_hl_mode Xt 上ハイライトモードに入る enter_vertical_hl_mode Xv 垂直ハイライトモードに入る .Ed .Pp 以下は廃れた termcap ケーパビリティです。 新しいソフトウェアはどれにも依存しないようにしてください。 .Bd -literal \fBブール値 TCap 記述\fR \fB変数 コード\fR linefeed_is_newline NL ^J で下に移動 even_parity EP 端末は偶数パリティを要求 odd_parity OP 端末は奇数パリティを要求 half_duplex HD 端末は半 2 重 lower_case_only LC 端末は小文字のみ持つ upper_case_only UC 端末は大文字のみ持つ has_hardware_tabs pt ^I で起動される 8 文字タブがある return_does_clr_eol xr リターンは行をクリアする tek_4025_insert_line xx Tektronix 4025 の insert-line グリッチ backspaces_with_bs bs 左に移動するために ^H を使用 crt_no_scrolling ns crt はスクロールできない no_correctly_working_cr nc 行頭に行く手段が無い .Ed .Bd -literal \fB数値 TCap 記述\fR \fB変数 コード\fR backspace_delay dB ^H に必要なパディング form_feed_delay dF ^L に必要なパディング horizontal_tab_delay dT ^I に必要なパディング vertical_tab_delay dV ^V に必要なパディング number_of_function_keys kn ファンクションキーの数 carriage_return_delay dC CR に必要なパディング new_line_delay dN LF に必要なパディング .Ed .Bd -literal \fB文字列 TCap 記述\fR \fB変数 コード\fR other_non_function_keys ko 自己にマップされたキーのリスト arrow_key_map ma 矢印キーをマップ memory_lock_above ml 現在の行より上の画面で見える部分のメモリを ロック memory_unlock mu 現在の行より上の画面で見える部分のメモリの ロックを解除 linefeed_if_not_lf nl 下に移動するために使用 backspace_if_not_bs bc ^H でない場合に左に移動 .Ed .Ss エントリのサンプル 以下のエントリは Concept\-100 について記述しており、 本書の中でも最も複雑なエントリの 1 つです。 .Pp .Bd -literal ca\||\|concept100\||\|c100\||\|concept\||\|c104\||\|concept100-4p\||\|HDS Concept\-100:\e :al=3*\eE^R:am:bl=^G:cd=16*\eE^C:ce=16\eE^U:cl=2*^L:cm=\eEa%+ %+ :\e :co#80:.cr=9^M:db:dc=16\eE^A:dl=3*\eE^B:do=^J:ei=\eE\e200:eo:im=\eE^P:in:\e :ip=16*:is=\eEU\eEf\eE7\eE5\eE8\eEl\eENH\eEK\eE\e200\eEo&\e200\eEo\e47\eE:k1=\eE5:\e :k2=\eE6:k3=\eE7:kb=^h:kd=\eE<:ke=\eEx:kh=\eE?:kl=\eE>:kr=\eE=:ks=\eEX:\e :ku=\eE;:le=^H:li#24:mb=\eEC:me=\eEN\e200:mh=\eEE:mi:mk=\eEH:mp=\eEI:\e :mr=\eED:nd=\eE=:pb#9600:rp=0.2*\eEr%.%+ :se=\eEd\eEe:sf=^J:so=\eEE\eED:\e :.ta=8\et:te=\eEv \e200\e200\e200\e200\e200\e200\eEp\er\en:\e :ti=\eEU\eEv 8p\eEp\er:ue=\eEg:ul:up=\eE;:us=\eEG:\e :vb=\eEk\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\eEK:\e :ve=\eEw:vs=\eEW:vt#8:xn:\e :bs:cr=^M:dC#9:dT#8:nl=^J:ta=^I:pt: .Ed .Pp 行末文字に \e を使用すれば、複数行にエントリを続けることができます。 また空のフィールドを含めて可読性を上げることもできます (ある行の最後のフィールドから次の行の最初のフィールドまでです)。 コメントは .Dq # で始まる行に含めることができます。 .Ss ケーパビリティの型 .Nm のケーパビリティには次の 3 種類があります: 特定の機能を端末が持つかどうかを示す、ブール値ケーパビリテイ; 画面の大きさや他の属性の大きさを与える、数値ケーパビリティ; そして特定の端末操作を行うために使用可能な文字列を与える、 文字列ケーパビリティです。 全てのケーバビリティが 2 文字のコードを持ちます。 例えば、Concept が .Em 自動マージン (行末に到達すると、自動的にリターンおよびラインフィードする機能) を持つという事実は、ブール値ケーパビリティ .Sy \&am で示されます。 それゆえ Concept の記述は .Sy \&am を含みます。 .Pp 数値ケーパビリティの後には文字 `#' が続き、そして値が続きます。 上の例では、画面の桁数を示す .Sy \&co は Concept に対しては値 `80' を与えます。 .Pp 最後に、文字列値のケーパビリティ、例えば .Sy \&ce (行末までクリアのシーケンス) は、2 文字のコード、単一の `='、 そして次の `:' までの文字列で与えられます。 このケーパビリティにおいては、ミリ秒指定の遅延を `=' の後に指定可能です。 この場合、残りの文字列が送られた後、パディング文字が .Xr tputs により与えられ、この遅延を発生させます。 遅延は `20' のような数値または `3*' のような `*' が続く数値です。 `*' は、 この操作により影響を受ける行数に必要なパディングが比例すること、 そして指定量は影響を受ける各行に必要なパディングであることを示します。 (insert-character の場合でも、係数は影響を受ける .Em 行 数です; ただし、端末が .Sy \&in を持っていてソフトウェアがこれを使用する場合以外は、この値は常に 1 です。) `*' が指定される時、`3.5' のような形式により 1/10 ミリ秒単位で 行あたりの遅延を指定するのが便利な場合があります。 (10 進数 1 桁分のみ許されます。) .Pp 多くのエスケープシーケンスが文字列値のケーパビリティで提供されますので、 ここでは容易に制御文字をエンコードできます。 .Sy \&\eE は .Dv ESC 文字にマップし、 .Sy \&^X は適切な X に対して control-X にマップし、シーケンス .Sy \&\en .Sy \&\er .Sy \&\et .Sy \&\eb .Sy \&\ef はそれぞれ、ラインフィード、リターン、タブ、バックスペース、フォームフィード にマップします。 最後に、文字は .Sy \&\e の後に 3 桁 8 進数として指定可能ですし、 .Sy \&^ と .Sy \&\e の文字は .Sy \&\e^ と .Sy \&\e\e として与えられます。 ケーパビリティ中に .Sy \&: を入れる必要がある場合、 .Sy \e: とエスケープするか、8 進数で .Sy \&\e072 とエスケープする必要があります。 文字列ケーパビリティ中に .Dv NUL 文字を入れる必要がある場合、 .Sy \&\e200 とエンコードする必要があります。( .Nm を扱うルーチンは C の文字列を使用し、 出力の最上位ビットをかなり遅い段階で取り除くので、 .Sy \&\e200 は .Sy \&\e000 として出力されます。) .Pp 個々のケーパビリティをコメントアウトする必要があるかもしれません。 その場合には、ケーパビリティ名の前にピリオドを付けます。 例えば、例における最初の .Sy \&cr と .Sy \&ta を見てください。 .Ss 記述の準備 端末記述を準備する最も効果的な方法は、 .Nm 中の似た端末の記述を真似し、 .Xr \&vi を使用して部分記述の正しさを確認することにより、 徐々に記述を構築するというものです。 非常に稀なことですが、端末によっては、 .Nm ファイルの記述能力不足や .Xr \&vi のバグが露呈することがありますので注意してください。 あなたが新しく作った端末記述を簡単にテストするには、 あなたのホームディレクトリに .Pa .termcap という名前のファイルとして置き、 プログラムが .Pa /usr/share/misc/termcap の前にこれを見るようにします。 環境変数 .Ev TERMPATH をあなたが作成した記述を含む絶対ファイルパス名のリスト (空白もしくはコロンで区切ります) に設定することにより、 プログラムはこれらをリスト順に検索し、他は検索しないようになります。 .Xr termcap 3 を参照してください。 .Ev TERMCAP 環境変数は、通常 .Nm エントリ自身に設定され、プログラム起動時にファイルを読むことを避けます。 .Pp 行挿入に対する適切なパディングを得るためには (端末製造元が記述しなかった場合には)、 .Xr \&vi を使用して .Pa /etc/passwd を 9600 ボーで編集し、およそ 16 行を画面中央から削除し、 それから `u' キーを何度か素早く押すという、厳しいテストを行います。 画面がぐちゃぐちゃになった場合には、 通常はより多くのパディングが必要となります。 同様のテストを文字挿入に対しても行うことが可能です。 .Ss 基本ケーパビリティ 表示の各行の桁数は .Sy \&co 数値ケーパビリティで与えられます。 表示が .Tn CRT になされる場合、画面の行数は .Sy \&li ケーパビリティで与えられます。 カーソルが右マージンに到達した時に、表示が次の行の先頭に回り込む場合には、 .Sy \&am ケーパビリティを持ちます。 端末が画面をクリア可能な場合には、そうするためのコードが .Sy \&cl 文字列ケーパビリティで与えられます。 端末が (上書きされる文字の位置をクリアするのではなく) 上打ちする場合には、 .Sy \&os ケーパビリティがあります。 端末がプリント端末でソフトコピーユニットを持たない場合、 .Sy \&hc と .Sy \&os を指定してください。 .Pf ( Sy \&os があてはまるのは Tektronix 4010 シリーズのようなストレージスコープ端末、 ハードコピー端末、そして .Tn APL 端末です。) カーソルを直ちに左端に移動するためのコードがある場合には、それを .Sy \&cr で指定します。 (通常これは復帰文字(キャリッジリターン)、すなわち .Sy \&^M です。) 可聴シグナル (ベルやビープなど) を発生するコードがある場合には、それを .Sy \&bl で指定します。 .Pp (バックスペースのように) カーソルを 1 つ左に移動するコードがある場合には、 このケーパビリテイは .Sy \&le で指定します。 同様に、右上下に移動するコードはそれぞれ .Sy \&nd , .Sy \&up , .Sy \&do で指定します。 これらの .Em ローカルなカーソル移動 は、カーソルが通過する文字を変化させてはなりません; 例えば、通常は .Dq nd=\ \& を使用してはなりません。例外は 端末が .Sy \&os ケーパビリティを持つ場合です。 この理由は、通過する文字を空白が消してしまうからです。 .Pp ここで非常に重要なポイントは、 .Nm でエンコードされるローカルなカーソル移動は、 .Tn CRT 表示の左端および上端では動作が未定義だということです。 ローカルなカーソル移動を使用している場合には、 左端においては .Sy \&bw が与えられているのでなければ、 プログラムはバックスペースを試してはなりませんし、 上端においては上への移動を試してはなりません。 .Pp テキストを上にスクロールするには、プログラムは画面左下角に移動して、 .Sy \&sf (インデックス) 文字列を送ります。 テキストを下にスクロールするには、プログラムは画面左上角に移動して、 .Sy \&sr (逆インデックス) 文字列を送ります。 期待された角以外での .Sy \&sf および .Sy \&sr 文字列の動作は未定義です。 パラメータ化したバージョンのスクロールシーケンスは .Sy \&SF および .Sy \&SR で、 .Sy \&sf および .Sy \&sr と同様の意味ですが、 1 つパラメータを取ってその行数だけスクロールさせるというところが違います。 これらもまた、画面上の適切な角以外での動作は未定義です。 .Pp .Sy \&am ケーパビリティは、画面の右端にてテキスト出力を行った時に、 カーソルがその位置に留まるか否かを示します。 しかしこれは、最後の桁での .Sy \&nd を必ずしも意味しません。 左端らかの左向きのローカル移動は、 .Sy \&bw が与えられている場合のみ定義されます; この場合、左端における .Sy \&le は、直前行の右端へ移動します。 例えば、画面の周囲に箱を描画する場合に便利です。 端末が切り替え選択式の自動マージンを持つ場合には、 .Nm 記述は通常この機能、 .Em すなわち .Sy \&am がオンであることを仮定します。 次行の先頭桁への移動コマンドを端末が持つ場合、このコマンドは .Sy \&nw (改行) で与えることができます。 これを使用して現在の行の残りの部分をクリアすることができますので、 正しく動作する .Tn \&CR および .Tn \&LF を持たない場合には、これらの代りに使用することができます。 .Pp これらの機能で、ハードコピー端末および .Dq ガラスの tty 端末を記述するためには十分です。 Teletype model 33 は以下のように記述されています .Bd -literal -offset indent T3\||\|tty33\||\|33\||\|tty\||\|Teletype model 33:\e :bl=^G:co#72:cr=^M:do=^J:hc:os: .Ed .Pp また Lear Siegler .Tn ADM Ns \-3 は以下のように記述されています .Bd -literal -offset indent l3\||\|adm3\||\|3\||\|LSI \s-1ADM\s0-3:\e :am:bl=^G:cl=^Z:co#80:cr=^M:do=^J:le=^H:li#24:sf=^J: .Ed .Ss パラメータ化された文字列 カーソル位置設定などのパラメータを要求する文字列は、 パラメータ化された文字列ケーパビリティで記述します。 ここでは .Xr printf 3 に似たエスケープ .Sy \&%x を使用します。その他の文字は変更されずに渡されます。 例えば、カーソル位置設定のために .Sy \&cm ケーパビリティが与えられますが、これは 2 つのパラメータを使用します: それぞれ移動先の行と桁です。 (行と桁は 0 から番号が振られ、ユーザから見える物理画面を参照します。 見えないメモリは参照しません。 端末がメモリ相対のカーソル位置設定機能を持つ場合には、 .Sy \&CM という似たケーパビリティで指定されます。) .Pp .Sy \&% エンコードは以下の意味を持ちます: .Bl -column xxxxx .It %% Ta No `%' を出力 .It "%d 値を" .Xr printf %d のように出力 .It "%2 値を" .Xr printf %2d のように出力 .It "%3 値を" .Xr printf %3d のように出力 .It "%. 値を" .Xr printf %c のように出力 .It "%+" Ns Em x Ta No 値に .Em x を加え、% を実行 .It "%>" Ns Em \&xy Ta No もし 値 \&> .Em x の場合には .Em y を加える。無出力 .It "%r 2 つのパラメータの順を逆転。無出力" .It "%i 1 増加。無出力" .It "%n 全パラメータに関した 0140 との排他的論理和 (Datamedia 2500)" .It "\&%B" Ta Tn BCD No "(16*(value/10)) + (value%10) を実行。無出力" .It "%D 逆コーディング (value \- 2*(value%16))。無出力 (Delta Data)" .El .Pp Hewlett-Packard 2645 において第 3 行第 12 桁に移動する場合、 .Dq \eE&a12c03Y を送って 6 ミリ秒パディングする必要があります。 行と桁の関係がここでは逆であり、行および桁は 2 桁の整数として送る ことに注意してください。 よって、この端末の .Sy \&cm ケーパビリティは .Dq Li cm=6\eE&%r%2c%2Y となります。 .Pp Datamedia 2500 は現在の行と桁を .Dq %.\& でバイナリエンコードして送る必要があります。 .Dq %.\& を使用する端末は、カーソルをバックスペース .Pq Sy \&le させる機能と画面上で 1 行カーソルを上に移動 .Pq Sy \&up する機能を持つ必要があります。 なぜなら .Sy \&\en , .Sy \&^D , .Sy \&\er を送出するのは常に安全というわけではなく、 システムがこれらに変更を加えたり捨てたりする場合があるからです。( .Nm を使用するプログラムは、タブが展開されないように端末モードを設定し、 .Sy \&\et が安全に送られるようにしなければなりません。 これは Ann Arbor 4080 において本質的です。) .Pp 最後の例は Lear Siegler .Tn ADM Ns \-3a です。この端末では行と桁は空白文字で与えますので、 .Dq Li cm=\eE=%+ %+\ となります。 .Pp 絶対値での行や桁のカーソル位置設定は、単一パラメータのケーパビリティ .Sy \&ch (水平絶対位置) および .Sy \&cv (垂直絶対位置) で与えられます。 一般的な 2 パラメータシーケンスよりもこれらを使用する方が短かいことがあり (Hewlett-Packard 2645 の場合)、 .Sy \&cm よりも好んで使用され得ます。 パラメータ化されたローカル移動 .Pf ( Em 例えば 、 .Ar n 個右に移動) の機能がある場合、 .Sy \&DO , .Sy \&LE , .Sy \&RI , .Sy \&UP として与えられます。これらは単一パラメータを取り、 いくつ移動するのかを示します。 第 1 に Tektronix 4025 のような .Sy \&cm を持たない端末で有用です。 .Ss カーソル移動 .Pp 端末が高速にカーソルをホーム (画面の左上角) に移動する方法がある場合、これは .Sy \&ho として与えられます。 同様に、高速に左下角に移動する方法は、 .Sy \&ll で与えられます; これには、ホームポジションにて .Sy \&up を使用することによる上への移動を含みますが、 プログラム自身がこれを実行してはなりません (ただし .Sy \&ll が実行する場合を除く)。 なぜならプログラムはホームポジションでの上への移動の効果を 仮定できないからです。) ホームポジションは、カーソル位置 (0,0) と同じです: 画面の左上角であり、メモリは無関係です。 (それゆえ、Hewlett-Packard 端末の .Dq \eEH シーケンスは、 .Sy \&ho としては使用できません。) .Ss 領域クリア 端末が、現在位置に留まりつつ、現在位置から行末までクリア可能である場合には、 この機能は .Sy \&ce として与えられます。 端末が、現在位置から描画終端までをクリア可能である場合には、この機能は .Sy \&cd として与えられます。 .Sy \&cd は行の最初の桁においてのみ起動可能です。(よって、真の .Sy \&cd が利用できない場合、この機能は多数の行を削除する要求にてシミュレート可能です。) .Ss 行の挿入および削除 端末が、カーソルがいる行の前に新しい空行を開けることが可能な場合、この機能は .Sy \&al として与えられます; この機能を起動するには行頭にいる必要があります。 行を開けると、カーソルは新しい空行の左端に移動します。 端末が、カーソルがいる行を削除可能な場合、この機能は .Sy \&dl として与えられます; この機能を起動するには削除する行の先頭にいる必要があります。 1 つパラメータを取ってその数だけ行を挿入および削除する .Sy \&al および .Sy \&dl の変形は、 .Sy \&AL および .Sy \&DL として与えられます。 端末が、(VT100 のように) 設定可能なスクロール領域を持つ場合、 設定コマンドは 2 つのパラメータを取る .Sy \&cs ケーパビリティとして記述されます: パラメータはスクロール領域の上端行および下端行です。 なんとしたことか、このコマンド使用後のカーソル位置は未定義です。 行挿入および行削除の効果はこのコマンドを使用することで得られます \(em .Sy \&sc および .Sy \&rc (カーソルの保存と回復) コマンドもまた有用です。 画面の上端または下端における行挿入は、 真の行挿入/削除を持たない多くの端末において、 .Sy \&sr または .Sy \&sf にて実行できます。 また、真の行挿入/削除機能を持つ端末においても、 こちらの方が高速な場合が多いです。 .Pp メモリの一部を、 全コマンドが影響するウィンドウとして定義する能力を端末が持つ場合、 これはパラメータ化された文字列 .Sy \&wi で与えられます。 4 つのパラメータは順番に、メモリにおける開始行・終了行・開始桁・終了桁です。 (この .Xr terminfo 5 ケーパビリティは完全性のために記述しています。 .Nm を使用するプログラムはこの機能を使ってはいないでしょう。) .Pp 端末が画面より上方の表示メモリを保存する場合、 .Sy \&da ケーパビリティが与えられます; 下方の表示メモリが保存される場合、 .Sy \&db が与えられます。 これらの機能は、 行削除やスクロールにより非空白行が下から現れることや、 .Sy \&sr による後退スクロールにより非空白行が上から現れることを示します。 .Ss 文字の挿入および削除 .Nm にて記述可能な文字挿入および削除に関しては、 基本的に 2 種類のインテリジェント端末があります。 最も一般的な文字の挿入/削除操作は現在行の文字にのみ作用し、 行末までの文字を厳格にシフトします。 他の端末、Concept\-100 や Perkin Elmer Owl では、 タイプされた空白とタイプされたものではない空白を区別し、 挿入/削除に際するシフトは 画面上のタイプされたものではない空白にのみ適用されます。 タイプされたものではない空白は、削除されるか、 2 つのタイプされたものではない空白に拡張されます。 使用している端末の種類を判別するためには、 画面をクリアし、カーソル移動を含めてテキストをタイプします。例えば .Dq Li abc\ \ \ \ def を、 .Dq abc と .Dq def の間でローカルなカーソル移動 (空白ではありません) を行ってタイプします。 その後、カーソルを .Dq abc の前に移動し、端末を挿入モードにします。 そこで文字をタイプすると 行の残りの部分が厳密にシフトされ終端から出て行く場合、 あなたの端末は空白とタイプされたものではない位置とを区別しません。 もし挿入に際して、 .Dq abc が .Dq def のところまでシフトし、 それから一緒に現在の行の終端まで移動して次行に移動する場合、 あなたの端末は 2 番目の種類の端末を持っていますので、 .Dq ナル挿入 を表すケーパビリティ .Sy \&in を指定します。 これら 2 つは論理的に別の属性 (1 行 .Em 対 複数行の挿入モードでタイプされたものではない空白を特別に扱う) ですが、 挿入モードをどちらかで記述できない端末を我々は見たことがありません。 .Pp .Nm エントリは、挿入モードを持つ端末も、 単純なシーケンスを送って現在の行に空白位置を開ける端末も、両方記述可能です。 .Sy \&im は挿入モードに入るシーケンスを表します。 .Sy \&ei は挿入モードから抜けるシーケンスを表します。そして、 .Sy \&ic は、挿入する文字を送る直前に送る必要があるシーケンスを表します。 真の挿入モードを持つほとんどの端末は、 .Sy \&ic を指定しません; 一方、画面上の位置を開けるためにシーケンスを使用する端末は、 これを指定する必要があります。 (端末が両方の機能を持つ場合には、挿入モードは通常 .Sy \&ic が好まれます。実際に両機能を組み合せる必要がある端末の場合以外は、 両方を指定しないでください。) 挿入後にパディングが必要な場合、ミリ秒数にて .Sy \&ip (文字列オプション) で与えます。 1 文字挿入後に送る必要があるシーケンスもまた .Sy \&ip で指定します。`挿入モード' である必要があり、 なおかつ挿入文字の前に特別のコードを送る必要がある端末の場合、 .Sy \&im Ns / Sy \&ei と .Sy \&ic が与えられ、両方を使用します。 単一のパラメータ .Em n を取る .Sy \&IC ケーパビリティは、 .Sy \&ic の効果を .Em n 回繰り返します。 .Pp 挿入モード中で同一行の文字を削除するために、時々移動が必要になります .Pf ( Em 例えば 挿入位置の後にタブがある場合)。 挿入モード中で移動を許す端末の場合、ケーパビリティ .Sy \&mi を指定して、このような場合の挿入を高速化できます。 .Sy \&mi を省略しても速度に影響するだけです。 端末によっては (特に Datamedia のものでは)、挿入モードの動作方法の理由により、 .Sy \&mi を指定してはなりません。 .Pp 最後に、1 文字削除のために .Sy \&dc を指定可能です。 .Sy \&DC は単一パラメータ .Em n を取り .Em n 文字削除します。 そして削除モードは、 .Sy \&dm および .Sy \&ed で、削除モードの入り方および抜け方を示します (削除モードとは、 .Sy \&dc が動作するために端末がいるべきモードです)。 .Ss ハイライト・下線・可視ベル 端末が 1 つまたはそれ以上の種類の表示属性を持つ場合、 これらは様々な方法で表現されていることでしょう。 1 つの表示形式を .Em 強調表示モード として選択してください。このモードは十分高いコントラストで見易く、 エラーメッセージや注意を引く表示のハイライトに適します。 (選択可能ならば、反転表示に半分の明るさ、もしくは反転表示のみが良いでしょう。) 強調表示モードに入るシーケンスおよび出るシーケンスは、それぞれ .Sy \&so および .Sy \&se で与えられます。 .Tn TVI 912 や Teleray 1061 のように、 強調表示モードの出入りのコードが、 1 つ 2 つの空白やごみの文字を画面上に残す場合、 .Sy \&sg を指定して、何文字残されるのかを指定してください。 .Pp 下線の開始および下線の終了は、それぞれ .Sy \&us および .Sy \&ue で指定します。 下線モード変更によるごみは、 .Sy \&sg 同様 .Sy \&ug として指定します。 Microterm Mime のように、現在位置の文字に下線を引き、 カーソルをひとつ右の位置に移動するコードを端末が持つ場合、 このコードは .Sy \&uc で指定します。 .Pp その他もろもろのハイライトモードに入るケーパビリティには、 .Sy \&mb (点滅)、 .Sy \&md (ボールドまたは更に明るい)、 .Sy \&mh (暗いまたは半輝度)、 .Sy \&mk (空白または見えないテキスト)、 .Sy \&mp (保護状態)、 .Sy \&mr (反転表示)、 .Sy \&me .Pf ( Em 全て の属性モードをオフ)、 .Sy \&as (別の文字セットモードに入る) そして .Sy \&ae (別の文字セットモードから抜ける) があります。 これらのモードを単独でオンにした場合、 他のモードをオフにする場合もありますし、オフにしない場合もあります。 .Pp モードの任意の組み合わせを設定するシーケンスがある場合、 これは 9 個のパラメータを取る .Sy \&sa (属性設定) で指定します。 それぞれのパラメータは 0 または 1 であり、 対応する属性がオンまたはオフされます。 9 個のパラメータは順番に次の通りです: 強調表示・下線・反転・点滅・ 暗い・ボールド・空白・保護・別の文字セット。 全モードが .Sy \&sa によりサポートされている必要は無く、 サポートされているものに対応するコマンドが存在することのみ必要です。( .Nm を使用するプログラムはこのケーパビリティをサポートしていないでしょう。 このケーパビリティは .Xr terminfo 5 との互換性のために定義しています。) .Pp 各文字セルに追加された属性ビットを管理するのではなく、 .Dq マジッククッキー グリッチ .Pf ( Sy \&sg および .Sy \&ug ) を持つ端末では、 描画アルゴリズムに影響するモード設定シーケンスを受信した時に、 特別な .Dq クッキー または .Dq ごみ文字 を画面に残します。 .Pp Hewlett-Packard 2621 のように、 新しい行へ移動した時やカーソル位置を設定した時に 自動的に強調表示モードから抜ける端末があります。 このような端末においては、強調表示モードを使用するプログラムは、 カーソル移動や改行送信前に強調表示モードから抜ける必要があります。 このような問題が無い端末では、 .Sy \&ms ケーパビリティが存在し、このオーバヘッドが不要であることを示します。 .Pp エラーを静かに伝えるために端末が画面をフラッシュさせる方法を持つ場合 (ベルの代りです)、これは .Sy \&vb として指定します; この機能はカーソルを移動してはなりません。 .Pp カーソルが最下行になくても、 通常時よりも見易くする必要がある場合 (例えば、点滅していない下線を、 より見付け易いブロックや点滅する下線に変更する場合)、このシーケンスは .Sy \&vs で与えます。 カーソルを完全に見えなくする方法がある場合には、これは .Sy \&vi ケーパビリティで指定します。 これらのモードの効果を打ち消すケーパビリティ .Sy \&ve も指定する必要があります。 .Pp (特別なコードを必要とせずに) 下線を引かれた文字を端末が正しく表示する場合、 しかもその機能が上打ちではない場合、 このケーパビリティを .Sy \&ul で示します。 上打ちを空白にて消去可能な場合、これは .Sy \&eo で示します。 .Ss キーパッド キーを押した時にコードを送出するキーパッドを持つ端末では、 この情報を指定することができます。 キーパッドがローカルモードにおいてのみ動作する端末は 扱うことができないことに注意してください。 (これは例えば Hewlett-Packard 2621 でシフト状態でないキーにあてはまります)。 キーコードの送出 / 非送出をキーパッドに設定できる場合は、 設定のためのコードは .Sy \&ks および .Sy \&ke で指定します。 そうでない場合はキーパッドは常にコードを送出するものと仮定されます。 left-arrow, right-arrow, up-arrow, down-arrow, home のキーで送出されるコードは それぞれ .Sy \&kl , .Sy \&kr , .Sy \&ku , .Sy \&kd , .Sy \&kh , で指定します。 f0, f1, ..., f9 のようなファンクションキーがある場合には、 これらのキーが送るコードは .Sy \&k0 , .Sy \&k1 , \&..., .Sy \&k9 で指定します。 これらのキーがデフォルトの f0 から f9 以外のラベルを持つ場合、このラベルは .Sy \&l0 , .Sy \&l1 , \&..., .Sy \&l9 で指定します。 その他の特殊キーで送出されるコードは次のように与えられます: .Sy \&kH (ホームダウン)、 .Sy \&kb (バックスペース)、 .Sy \&ka (全タブクリア)、 .Sy \&kt (この桁のタブストップをクリア)、 .Sy \&kC (画面クリアまたは消去)、 .Sy \&kD (文字削除)、 .Sy \&kL (行削除)、 .Sy \&kM (挿入モードから抜ける)、 .Sy \&kE (行末までクリア)、 .Sy \&kS (画面の終りまでクリア)、 .Sy \&kI (文字挿入または挿入モードに入る)、 .Sy \&kA (行挿入)、 .Sy \&kN (次のページ)、 .Sy \&kP (前のページ)、 .Sy \&kF (前進/下降スクロール)、 .Sy \&kR (後退/上昇スクロール)、 .Sy \&kT (この桁にタブストップを設定)。 -更に、キーパッドが 4 つの矢印キーを含む 3 × 3 のキー配列を持つ場合、 +.\" ×がうまく表示されないので \[mu] 使用 +更に、キーパッドが 4 つの矢印キーを含む 3 \[mu] 3 のキー配列を持つ場合、 他の 5 つのキーは .Sy \&K1 , .Sy \&K2 , .Sy \&K3 , .Sy \&K4 , .Sy \&K5 で指定します。 -3 × 3 の方向パッドが必要な時、これらのキーは有用です。 +3 \[mu] 3 の方向パッドが必要な時、これらのキーは有用です。 以前 .Dq その他 のファンクションキーを記述するために使用された、廃れた .Sy \&ko ケーパビリティは、上記のケーパビリティにより完全に置き換えられました。 .Pp .Sy \&ma エントリはまた、 端末の矢印キーが 1 文字矢印キーであることを示すためにも使用されます。 これは廃れた方法ですが、 .Sy \&vi のバージョン 2 で未だ使用されています。 メモリ制約の理由で、このコマンドを使用しているミニコンピュータがあるでしょう。 このフィールドは .Sy \&kl , .Sy \&kr , .Sy \&ku , .Sy \&kd , .Sy \&kh と冗長関係にあります。 このフィールドは 2 文字の複数グループから構成されます。 各グループにおいては、最初の文字は矢印キーが何を送るかを表し、 2 番目の文字は対応する .Sy \&vi のコマンドを表します。 コマンドは、 .Ar h が .Sy \&kl に、 .Ar j が .Sy \&kd に、 .Ar k が .Sy \&ku に、 .Ar l が .Sy \&kr に、 .Ar H が .Sy \&kh に対応します。 例えば Mime では .Dq Li ma=^Hh^Kj^Zk^Xl となり、矢印キーの left (^H), down (^K), up (^Z), down (^X) を示します。 (Mime には home キーはありません。) .Ss タブおよび初期化 これらのケーパビリティを使用するプログラムを実行する時に 端末を特別なモードにすることが必要な場合、 このモードに入るコードおよび出るコードは .Sy \&ti と .Sy \&te で指定します。 これが関係あるのは、例えば Concept のようなメモリページを複数持つ端末です。 端末がメモリ相対のカーソル位置設定のみ持ち、 画面相対のカーソル位置設定を持たない場合には、 画面サイズのウィンドウに表示を固定し、 カーソル位置設定が正しく動作するようにする必要があります。 これは Tektronix 4025 でも使用され、 .Sy \&ti はコマンド文字を .Nm が使うように設定します。 .Pp 他のケーパビリティとしては、端末初期化文字列 .Sy \&is や、長い初期化文字列を格納するファイル名 .Sy \&if があります。 これらの文字列は、端末を .Nm 記述と矛盾がないモードに設定するものと期待されています。 これらは通常、ユーザがログインするたびに、 .Xr tset プログラムによって端末に送られます。 印字は次の順に行われます: まず .Sy \&is ; 次に .Sy \&ct と .Sy \&st によるタブ設定; そして最後に .Sy \&if です。 .Pf ( Xr terminfo 5 では .Sy \&is の代りに .Sy \&i\&1-i2 を使用し、プログラム .Sy \&iP を実行し、他の初期化の後 .Sy "\&i\&3" を印字します。) まったくわけがわからない状態から回復するためのよりハードな リセットシーケンスの組が、類推できる名前 .Sy \&rs および .Sy \&rf で与えられます。 これらの文字列は、端末がはまった状態に陥いった時に使用される .Xr reset プログラムにより出力されます。 .Pf ( Xr terminfo 5 は .Sy \&rs の代りに .Sy "\&r1-r3" を使用します。) これらのコマンドが画面上を騒がせ、 なおかつログイン時に必ずしも必要ではない場合に限り、 通常これらは .Sy \&rs および .Sy \&rf に格納します。 例えば、VT100 を 80 桁モードに設定するコマンドは、普通に考えると .Sy \&is の一部に入れるでしょうが、これは画面に困ったゴミを生じさせますし、 端末は普段既に 80 桁モードですので、実際は入れる必要はありません。 .Pp 端末がハードウェアタブを持つ場合、 次のタブストップまで進むコマンドは .Sy \&ta で指定します (通常は .Sy \&^I です)。 直前のタブストップへ左向きに移動する .Dq バックタブ コマンドは、 .Sy \&bt で指定します。 タブストップが端末には送られずに計算機により展開されることを 端末ドライバモードが示す場合、 .Sy \&ta や .Sy \&bt が存在するとしても、プログラムでこれらを使用しないというのが約束になって います。 なぜなら、ユーザがタブストップを正しく設定していないかもしれないからです。 端末電源オン時に各 .Ar n 位置ごとにハードウェアタブが初期設定される端末の場合、 数値パラメータ .Sy \&it を使用し、タブストップ間隔を示します。 このコマンドは通常 .Xr tset コマンドが使用し、ドライバモードをハードウェアタブ展開に設定するか否か、 およびタブストップを設定するか否かを決定します。 端末が不揮発性メモリにタブストップを保存可能な場合、 .Nm 記述はタブストップが正しく設定されるものと仮定できます。 .Pp タブストップを設定およびクリアするコマンドが存在する場合、 これらのコマンドは .Sy \&ct (全タブストップをクリア) および .Sy \&st (全ての行における現在の桁にタブストップを設定) で指定します。 タブ設定のために、ここで示した方法より複雑なシーケンスが必要な場合、 このシーケンスは .Sy \&is や .Sy \&if で指定します。 .Ss 遅延 端末ドライバのパディングを制御するケーパビリティもあります。 これらのケーパビリティは、第 1 にハードコピー端末にて必要とされ、 .Xr tset プログラムにより端末ドライバのモードを適切に設定するために使用されます。 ケーパビリティ .Sy \&cr , .Sy \&sf , .Sy \&le , .Sy \&ff , .Sy \&ta に埋め込まれる遅延は、端末ドライバの適切な遅延ビットを設定する効果があります。 .Sy \&pb (パディングボーレート) を指定した場合、 この値より低いボーレートにおいては、これらの値は無視されます。 .Bx 4.2 の .Xr tset では、遅延は別の数値ケーパビリティ .Sy \&dC , .Sy \&dN , .Sy \&dB , .Sy \&dF , .Sy \&dT で与えられます。 .Ss その他 端末が .Dv NUL (0) 文字以外のパディング文字を必要とする場合には、 .Sy \&pc で指定します。 .Sy \&pc 文字列の最初の文字のみが使用されます。 .Pp 端末がカーソル位置を保存および回復するコマンドを持つ場合には、これらは .Sy \&sc および .Sy \&rc で指定します。 .Pp 通常はソフトウェアが使用しない追加の .Dq ステータス行 を端末が持つ場合、この事実を示すことができます。 ステータス行が最下行の下に追加の行として見える場合には、ケーパビリティ .Sy \&hs を指定します。 ステータス行の位置への移動およびステータス行からの復帰のための特別な文字列は、 .Sy \&ts および .Sy \&fs で指定します。 .Pf ( Sy \&ts の前にカーソルが存在した位置に、 .Sy \&fs はカーソルを戻す必要があります。必要ならば、 .Sy \&sc および .Sy \&rc の文字列を .Sy \&ts および .Sy \&fs に含めてこの効果を得ることができます。) ケーパビリティ .Sy \&ts は、ステータス行の何桁目にカーソルが移動すべきを示すパラメータを 1 つ取ります。 エスケープシーケンスや他の特殊コマンド、 例えばタブがステータス行でも動作するならば、フラグ .Sy \&es を指定します。 ステータス行をオフにする (または内容を消去する) 文字列は、 .Sy \&ds で指定します。 通常、ステータス行の幅は画面の他の部分、 .Em すなわち .Sy \&co と同じであると仮定されます。(端末が行全体の使用を許さない等の理由で) ステータス行の幅が異なる場合には、その幅を桁数で数値パラメータ .Sy \&ws で指定します。 .Pp 端末が半行上下に移動可能な場合、 .Sy \&hu (半行上) および .Sy \&hd (半行下) で指定します。 これは、ハードコピー端末で上付き文字および下付き文字を使用するために有用です。 ハードコピー端末がページを排出して次のページに移動 (フォームフィード) する ことができる場合、これは .Sy \&ff (通常 .Sy \&^L です) で指定します。 .Pp 指定した文字を指定した回数繰り返すコマンド (同一文字を何度も送出する時間を節約します) がある場合、 パラメータ化された文字列 .Sy \&rp で指定します。 最初のパラメータは繰り返される文字であり、2 番目のパラメータは 繰り返す回数です。(これは .Xr terminfo 5 の機能であり、 .Nm を使用するプログラムはこの機能をサポートしていないでしょう。) .Pp Tektronix 4025 のように端末が設定可能なコマンド文字を持つ場合、 .Sy \&CC で指定します。 全ケーパビリティで使用されるプロトタイプコマンド文字が選択されます。 この文字を識別するために、この文字が .Sy \&CC ケーパビリティにより与えられます。 次の約束をサポートしている .Ux システムがあります: すなわち、 .Ev \&CC 環境変数を検査し、もし設定されている場合には、 プロトタイプ文字を環境変数で設定されているものと置き換えるという約束です。 このように .Ev \&CC 環境変数を使用することは、 .Xr make 1 との衝突が発生しますので、非常に悪い考えです。 .Pp 特定の既知の端末を表現するものではない端末記述、 .Em switch , .Em dialup , .Em patch , .Xr network では .Sy \&gn (一般) ケーパビリティを設定し、 端末に対してどのように話しかければよいのか分らないと プログラムが文句を言えるようにします。 (このケーパビリティは、エスケープシーケンスが既知である .Em 仮想 端末記述にはあてはまりません。 .Pp 端末が xoff/xon .Pq Tn DC3 Ns / Ns Tn DC1 ハンドシェークを使用してフロー制御する場合、 .Sy \&xo を指定します。 コストに関するより良い判定を可能とするために 依然としてパディング情報を指定する必要がありますが、 実際にパディング文字が送出されるということはありません。 .Pp シフトキーのように動作し、送出される文字の 8 ビット目をセットする .Dq メタキー を端末が備える場合、 .Sy \&km を設定してこの事実を示すことができます。 これが指定されない場合は、ソフトウェアは 8 ビット目はパリティであると仮定し、 通常これをクリアしてしまいます。 .Dq メタモード をオンおよびオフする文字列が存在する場合、これらは .Sy \&mm および .Sy \&mo で指定します。 .Pp 画面 1 枚分より多くのメモリ行を端末が備える場合、 メモリの行数を .Sy \&lm で指定します。 明示的に値 0 を指定すると、行数は固定ではないものの 画面分より多くのメモリがあることを示します。 .Pp .Ux システムの仮想端末プロトコルにてサポートされる端末である場合、 端末番号は .Sy \&vt で与えられます。 .Pp 端末に接続された外部プリンタを制御するメディアコピー文字列は、 次のように与えられます。すなわち .Sy \&ps : 画面内容の印字; .Sy \&pf : プリンタオフ; および .Sy \&po : プリンタオンです。 プリンタオン時には、端末に送られる全てのテキストはプリンタに送られます。 プリンタオン時に端末画面にもテキストが表示されるか否かは未定義です。 このバリエーションである .Sy \&pO は単一のパラメータを取り、 パラメータ値で指定される文字数だけプリンタをオンにし、 その後プリンタをオフにします。 このパラメータは 255 を越えてはなりません。 .Sy \&pf を含む全テキストは、 .Sy \&pO が有効である間、透過的にプリンタに渡されます。 .Pp プログラムファンクションキーへの文字列は .Sy \&pk , .Sy \&pl , .Sy \&px で指定します。 これらの文字列は次の 2 つのパラメータを取ります: それぞれ、プログラム対象のファンクションキー番号 (0 から 9 まで) と、 プログラムの文字列です。 この範囲外のファンクションキー番号を指定すると、 ここでは定義できないキーを端末依存の方式でプログラムするかもしれません。 これらのケーパビリティの差異は、 .Sy \&pk は指定したキーを押すと指定した文字列を ユーザがタイプしたものとして扱うものであり; .Sy \&pl はローカルモードの端末にて指定した文字列を実行させるものであり; .Sy \&px は指定した文字列を計算機に送出させるものである点です。 不幸なことに、 .Nm では文字列パラメータが定義されていないため、 .Xr terminfo 5 のみがこれらのケーパビリティをサポートします。 .Ss グリッチと不良 文字 `~' を表示できない Hazeltine 端末は .Sy \&hz を指定する必要があります。 .Pp .Sy \&nc ケーパビリティは現在廃れていますが、 以前は Datamedia 端末を表すために使用していました。 この端末では、キャリッジリターンに対して .Sy \&\er \en をエコーし、続くラインフィードを無視します。 .Pp Concept のように .Sy \&am による折り返しの直後のラインフィードを無視する端末では、 .Sy \&xn を指定します。 .Pp 強調表示を取り除くために (単に通常のテキストを上書きするだけで済まず) .Sy \&ce が必要な場合、 .Sy \&xs を指定します。 .Pp タブによって移動された全ての文字が空白にされてしまう Teleray 端末では、 .Sy \&xt (破壊的なタブ) を指定する必要があります。 このグリッチは、 .Dq マジッククッキー の先頭に カーソル位置を設定できないことと、 強調表示を消すためには行削除と行挿入が必要であることも表現します。 .Pp .Dv ESC や .Sy \&^C の文字を正しく送出できない Beehive Superbee は .Sy \&xb を指定し、 .Dq \&f\&1 キーが .Dv ESC として使用され、 .Dq \&f\&2 キーが ^C として使用されることを示します。( 特定の Superbee のみがこの問題を持ち、これは .Tn ROM に依存します。) .Pp ある特定の端末に他の問題がある場合、 .Sy x Ns Em x の形式のケーパビリティを追加することにより正しく動作するようにしても 構いません。 .Ss 似た端末 2 つの非常によく似た端末がある場合、 例外はあるもののもう一方にそっくりであると、 一方を定義することができます。 文字列ケーパビリティ .Sy \&tc には似た端末の名前を与えます。 このケーパビリティは .Em 最後 である必要があり、組み合わせたエントリの長さは 1024 を越えてはなりません。 .Sy \&tc の前に指定したケーパビリティは .Sy \&tc により呼び出される端末タイプの記述に優先します。 ケーパビリティのキャンセルのためには .Sy \&xx@ を .Sy \&tc の呼び出しの左に置きます。 .Sy \&xx はキャンセルされるケーパビリティです。 例えば、エントリ .Bd -literal -offset indent hn\||\|2621\-nl:ks@:ke@:tc=2621: .Ed .Pp は、ビジュアルモードでファンクションキーラベルをオンにしないために .Sy \&ks と .Sy \&ke のケーパビリティを持たない .Dq 2621\-nl を定義します。 端末の種々のモードやユーザの種々のプリファレンスを記述するために有用です。 .Sh 関連ファイル .Bl -tag -width /usr/share/misc/termcap.db -compact .It Pa /usr/share/misc/termcap 端末記述を格納するファイル .It Pa /usr/share/misc/termcap.db 端末記述を格納するハッシュデータベースファイル .Pf ( Xr cap_mkdb 1 を参照)。 .El .Sh 関連項目 .Xr cap_mkdb 1 , .Xr ex 1 , .Xr more 1 , .Xr tset 1 , .Xr ul 1 , .Xr vi 1 , .Xr ncurses 3 , .Xr printf 3 , .Xr termcap 3 , .Xr term 5 .Sh 警告およびバグ .Em 注 : .Nm の機能は .At V Release 2.0 の .Xr terminfo 5 に置き換えられました。 .Dq 廃れた とされるケーパビリティを使用していなければ、 移行のための苦痛は比較的少ないです。 .Pp 現在、行数および桁数は、 termcap エントリに格納するものと同様に、カーネルが格納します。 現在、ほとんどのプログラムはカーネルの情報を最初に使用します; このファイルに記述されている情報は、 カーネルが情報を持たない時のみ使用されます。 .Pp .Xr \&vi 1 プログラムは文字列ケーパビリティには 256 文字しか許しませんが、 .Xr termlib 3 のルーチンはこのバッファの溢れをチェックしません。 単一エントリの総計の長さは 1024 を越えてはなりません (エスケープされた改行は除きます)。 .Pp 全てのプログラムが全てのエントリをサポートしているわけではありません。 .Sh 歴史 .Nm ファイルフォーマットは .Bx 3 に登場しました。 diff --git a/ja_JP.eucJP/man/man5/terminfo.5 b/ja_JP.eucJP/man/man5/terminfo.5 index 59ffd68e23..fa1e87adab 100644 --- a/ja_JP.eucJP/man/man5/terminfo.5 +++ b/ja_JP.eucJP/man/man5/terminfo.5 @@ -1,3108 +1,3109 @@ '\" t .\" DO NOT EDIT THIS FILE BY HAND! .\" It is generated from terminfo.head, Caps, and terminfo.tail. .\" .\" Note: this must be run through tbl before nroff. .\" The magic cookie on the first line triggers this under some man programs. .\"*************************************************************************** .\" Copyright (c) 1998 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * .\" "Software"), to deal in the Software without restriction, including * .\" without limitation the rights to use, copy, modify, merge, publish, * .\" distribute, distribute with modifications, sublicense, and/or sell * .\" copies of the Software, and to permit persons to whom the Software is * .\" furnished to do so, subject to the following conditions: * .\" * .\" The above copyright notice and this permission notice shall be included * .\" in all copies or substantial portions of the Software. * .\" * .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * .\" * .\" Except as contained in this notice, the name(s) of the above copyright * .\" holders shall not be used in advertising or otherwise to promote the * .\" sale, use or other dealings in this Software without prior written * .\" authorization. * .\"*************************************************************************** .\" .\" %Id: terminfo.head,v 1.9 2000/08/13 01:56:40 tom Exp % .\" $FreeBSD$ .TH TERMINFO 5 "" "" "File Formats" .ds n 5 .ds d /usr/share/misc/terminfo .SH 名称 terminfo \- 端末ケーパビリティのデータベース .SH 書式 \*d/*/* .SH 解説 .I terminfo は端末の特性を記述するデータベースであり、 \fBnvi\fR(1), \fBrogue\fR(1) などの画面を活用したプログラムや \fBcurses\fR(3X) などのライブラリによって使用されます。 .I terminfo は、端末が持つケーパビリティの集合を与え、画面操作をどのようにして行うかを 指定し、必要なパディングや初期化シーケンスを指定することで、端末の特性を 記述します。 .PP .I terminfo のエントリは、`,' で区切られたフィールドの列からなります (フィールド内の コンマはバックスラッシュでエスケープするか、\e072 と書きます)。 `,' セパレータの後の空白は無視されます。 各端末を表す最初のエントリは、端末を表すものとして知られている名前を 指定します。名前を複数指定するときは `|' で区切ります。 最初の名前は、その端末のものとして最もよく知られた省略形を与えます。 最後の名前には、その端末を識別できるだけの長い名前を指定するべきです。 それら以外の名前は、同じ端末を指す別名と見なされます。 最後のもの以外の名前は、すべて英小文字からなり、空白が含まれていては いけません。 最後の名前には、読みやすくするために大文字や空白を含めても構いません。 .PP 端末名 (最後の冗長なものは除く) は、以下の約束にしたがって付けてください。 名前の基本部分を、端末を構成するハードウェアの特徴的部分から名付けます (``hp2621'' のように)。 この名前にはハイフンを含めてはいけません。 モードや、ユーザの設定が現れる部分については、基本名の後に、 ハイフンとモードの接尾辞つけて表してください。 例えば、vt100 の 132 桁モードは vt100-w のようになります。 使えるところがあれば、以下の接尾辞を使ってください。 .PP .TS center ; l c l l l l. \fB接尾辞 意味 例\fP -\fInn\fP 画面の行数 aaa-60 -\fIn\fPp 画面記憶ページ数 c100-4p -am 自動マージン付 (通常これがデフォルト) vt100-am -m 白黒モード; 色を抑制 ansi-m -mc 魔法のクッキー; ハイライトのときの空白 wy30-mc -na 矢印キー無し (局所的にとどめる) c100-na -nam 自動マージン無し vt100-nam -nl ステータス行無し att4415-nl -ns ステータス行無し hp2626-ns -rv 反転表示 c100-rv -s ステータス行有り vt100-s -vb ビープの代わりに可視ベルを使用 wy370-vb -w 幅広モード (> 80 桁、通常 132 桁) vt100-w .TE .PP 端末の命名規則についてさらに知りたいときは \fBterm(7)\fR のマニュアルを 参照してください。 .SS ケーパビリティ .\" Head of terminfo man page ends here .ps -1 以下は terminfo の記述ブロックに含まれ、terminfo を使うコードが使用できる ケーパビリティの完全な表です。表の各行の意味は次の通りです。 \fBvariable\fR は (terminfo レベルの) プログラマがケーパビリティを 使用するときに用いる名前です。 \fBcapname\fR は、データベースのテキストの中で用いる短縮名で、 データベースを更新する人間が用いる名前です。 可能な場合は常に、capname は ANSI X3.64-1979 標準規格 (現在 ECMA-48 に 取って代わられていますが、そこでも同一のもしくは非常に良く似た名前を 使っています) と同一もしくは類似のものを選んであります。その意味も、 その規格での規定に合致するようにしてあります。 termcap code は古典的な .B termcap ケーパビリティの名前です (いくつかのケーパビリティは新しいもので、 その名前は termcap に由来しません)。 .P ケーパビリティの名前の長さには、決まった上限はありません。ただし、名前を 短くし、ソースファイルにタブを使って .B cap をきれいに並べられるように、非公式ながら上限 5 文字の制限が既に 採用されています。 最後に、説明ではケーパビリティの意味を伝えようとします。説明の中には 以下のようなコードがある場合があります。 .TP (P) パディングが指定可能であることを表します。 .TP #[1-9] 説明の中では、文字列が (#\fIi\fP) として与えられる引数として tparm を介して渡されることを示します。 .TP (P*) 影響を受ける行数にパディングが比例することを表します。 .TP (#\d\fIi\fP\u) 第 \fIi\fP 番目のパラメータを表します。 .PP 以下はブール値ケーパビリティです : .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw20. \fBvariable cap- TCap 説明\fR \fBブール値 name Code\fR auto_left_margin bw bw T{ cub1 は桁 0 から最後の桁に回り込む T} auto_right_margin am am T{ 自動マージン機能を持つ T} back_color_erase bce ut T{ 画面を背景色で消去する T} can_change ccc cc T{ 既存の色を再定義可能 T} ceol_standout_glitch xhp xs T{ 強調出力は上書きで消去されない (hp) T} col_addr_glitch xhpa YA T{ hpa/mhpa では正方向のみ移動可能 T} cpi_changes_res cpix YF T{ 文字ピッチを変えると解像度が変わる T} cr_cancels_micro_mode crxm YB T{ cr を使用するとマイクロモードがオフになる T} dest_tabs_magic_smso xt xt T{ タブは破壊的、強調文字の動作が奇妙 (t1061) T} eat_newline_glitch xenl xn T{ 80 桁より後の改行は無視される (concept) T} erase_overstrike eo eo T{ 空白の重ね打ちで消去可能 T} generic_type gn gn T{ 一般的な回線タイプ T} hard_copy hc hc T{ ハードコピー端末 T} hard_cursor chts HC T{ カーソルが見にくい T} has_meta_key km km T{ メタキーを持つ (押すと第 8 ビットがセットされる) T} has_print_wheel daisy YC T{ 文字セットを変更するのに人手が必要なプリンタ T} has_status_line hs hs T{ 特別なステータス行を持つ T} hue_lightness_saturation hls hl T{ 端末は HLS 色表記のみ使用 (Tektronix) T} insert_null_glitch in in T{ 挿入モードでヌル文字を区別する T} lpi_changes_res lpix YG T{ 行ピッチを変えると解像度が変わる T} memory_above da da T{ 画面より上の描画が保持される T} memory_below db db T{ 画面より下の描画が保持される T} move_insert_mode mir mi T{ 挿入モードで安全にカーソル移動可能 T} move_standout_mode msgr ms T{ 強調モードで安全にカーソル移動可能 T} needs_xon_xoff nxon nx T{ パディング機能が働かない。xon/xoff 制御が必要 T} no_esc_ctlc xsb xb T{ beehive 端末 (f1=escape, f2=ctrl C) T} no_pad_char npc NP T{ パディング文字が存在しない T} non_dest_scroll_region ndscr ND T{ スクロール領域が非破壊的 T} non_rev_rmcup nrrmc NR T{ smcup は rmcup の動作を反転しない T} over_strike os os T{ 端末は重ね打ち可能 T} prtr_silent mc5i 5i T{ プリンタ出力は画面にエコーしない T} row_addr_glitch xvpa YD T{ vpa/mvpa では正方向にのみ移動可能 T} semi_auto_right_margin sam YE T{ 最終桁で出力すると cr 動作をする T} status_line_esc_ok eslok es T{ ステータス行上でエスケープ可能 T} tilde_glitch hz hz T{ ~ 表示不可 (hazeltine 端末) T} transparent_underline ul ul T{ 下線付文字は上書きする T} xon_xoff xon xo T{ 端末は xon/xoff ハンドシェークを行う T} .TE .ad 以下は数値ケーパビリティです : .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw20. \fBvariable cap- TCap 説明\fR \fB数値 name Code\fR columns cols co T{ 1 行の桁数 T} init_tabs it it T{ タブの初期設定は # 個の空白毎 T} label_height lh lh T{ ラベル 1 つの行数 T} label_width lw lw T{ ラベル 1 つの桁数 T} lines lines li T{ 画面またはページの行数 T} lines_of_memory lm lm T{ lines の値以上の場合メモリの行数。0 は行数が可変であることを表す T} magic_cookie_glitch xmc sg T{ smso や rmso で画面に残る空白数 T} max_attributes ma ma T{ 端末が組み合わせて処理できる属性数の最大値 T} max_colors colors Co T{ 画面上の最大色数 T} max_pairs pairs pa T{ 画面上の色ペアの最大値 T} maximum_windows wnum MW T{ 定義可能なウィンドウ数の最大値 T} no_color_video ncv NC T{ 色付きでは使用できないビデオ属性 T} num_labels nlab Nl T{ 画面上のラベル数 T} padding_baud_rate pb pb T{ パディングが必要な最低ボーレート T} virtual_terminal vt vt T{ 仮想画面番号 (CB/unix) T} width_status_line wsl ws T{ ステータス行の桁数 T} .TE .ad 以下の数値ケーパビリティは、SVr4.0 の term 構造体に存在していますが、 マニュアルには未だに説明がありません。 SVr4 でプリンタに対応するために採り入れられました。 .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw20. \fBvariable cap- TCap 説明\fR \fB数値 name Code\fR bit_image_entwining bitwin Yo T{ 各ビットイメージ行に対するパスの数 T} bit_image_type bitype Yp T{ ビットイメージデバイスのタイプ T} buffer_capacity bufsz Ya T{ 印字前にバッファリング可能なバイト数 T} buttons btns BT T{ マウスのボタン数 T} dot_horz_spacing spinh Yc T{ 1 インチあたりのドット数での水平方向のドット間隔 T} dot_vert_spacing spinv Yb T{ 1 インチあたりのピン数での垂直方向のピン間隔 T} max_micro_address maddr Yd T{ micro_..._address での最大値 T} max_micro_jump mjump Ye T{ parm_..._micro での最大値 T} micro_col_size mcs Yf T{ マイクロモードでの文字ステップサイズ T} micro_line_size mls Yg T{ マイクロモードでの行ステップサイズ T} number_of_pins npins Yh T{ プリントヘッドのピン数 T} output_res_char orc Yi T{ 1 行あたりのユニット数での水平解像度 T} output_res_horz_inch orhi Yk T{ 1 インチあたりのユニット数での水平解像度 T} output_res_line orl Yj T{ 1 行あたりのユニット数での垂直解像度 T} output_res_vert_inch orvi Yl T{ 1 インチあたりのユニット数での垂直解像度 T} print_rate cps Ym T{ 1 秒あたりの文字数での印字速度 T} wide_char_size widcs Yn T{ 倍幅モードでの文字ステップサイズ T} .TE .ad 以下は文字列ケーパビリティです : .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw20. \fBvariable cap- TCap 説明\fR \fB文字列 name Code\fR acs_chars acsc ac T{ 図形文字セットの組、vt100 に基づく T} back_tab cbt bt T{ 後退タブ (P) T} bell bel bl T{ 可聴シグナル (ベル) (P) T} carriage_return cr cr T{ 復帰文字 (P*) (P*) T} change_char_pitch cpi ZA T{ 1 インチあたりの文字数を # 1 に変更 T} change_line_pitch lpi ZB T{ 1 インチあたりの行数を #1 に変更 T} change_res_horz chr ZC T{ 水平解像度を #1 に変更 T} change_res_vert cvr ZD T{ 垂直解像度を #1 に変更 T} change_scroll_region csr cs T{ 領域を行 #1 から行 #2 までに変更 (P) T} char_padding rmp rP T{ ip と同様だが挿入モード以外で使用 .\" 後で If padding is necessary between characters typed while not .\" in insert mode, give this as a number of milliseconds .\" padding in rmp. という記述がある T} clear_all_tabs tbc ct T{ タブ設定をすべてクリア (P) T} clear_margins mgc MC T{ 左右のソフトマージンをクリア T} clear_screen clear cl T{ 画面をクリアし、カーソルをホームに移動 (P*) T} clr_bol el1 cb T{ 行先頭までクリア T} clr_eol el ce T{ 行末までクリア (P) T} clr_eos ed cd T{ 画面末までクリア (P*) T} column_address hpa ch T{ 水平絶対位置 #1 (P) T} command_character cmdch CC T{ 端末がプロトタイプで設定可能なコマンド文字 !? T} create_window cwin CW T{ ウィンドウ #1 を #2,#3 から #4,#5 までと定義 T} cursor_address cup cm T{ 行 #1 桁 #2 に移動 T} cursor_down cud1 do T{ 1 行下に移動 T} cursor_home home ho T{ カーソルをホームに移動 (cup がない場合) T} cursor_invisible civis vi T{ カーソルを見えなくする T} cursor_left cub1 le T{ カーソルを 1 空白分左に移動 T} cursor_mem_address mrcup CM T{ メモリ相対のカーソル位置指定であり、行 #1 列 #2 へ移動 T} cursor_normal cnorm ve T{ カーソルを通常表示にする (civis/cvvis を元に戻す) T} cursor_right cuf1 nd T{ 非破壊空白 (1 空白分右に移動) T} cursor_to_ll ll ll T{ 最終行の最初の桁 (cup がない場合) T} cursor_up cuu1 up T{ 1 行上へ T} cursor_visible cvvis vs T{ カーソルをより見えるようにする T} define_char defc ZE T{ 文字 #1 を幅 #2 ドット、ディセンダ #3 で定義する T} delete_character dch1 dc T{ 文字を削除 (P*) T} delete_line dl1 dl T{ 行を削除 (P*) T} dial_phone dial DI T{ 番号 #1 にダイアルする T} dis_status_line dsl ds T{ ステータス行を無効にする T} display_clock dclk DK T{ 時計を表示する T} down_half_line hd hd T{ 半行下へ T} ena_acs enacs eA T{ 別の文字セットを有効にする T} enter_alt_charset_mode smacs as T{ 別の文字セットを開始 (P) T} enter_am_mode smam SA T{ 自動マージンオン T} enter_blink_mode blink mb T{ 点滅モードオン T} enter_bold_mode bold md T{ 太字 (更に明るい) モードオン T} enter_ca_mode smcup ti T{ cup を用いたプログラムを開始する文字列 T} enter_delete_mode smdc dm T{ 削除モード開始 T} enter_dim_mode dim mh T{ 半輝度モード開始 T} enter_doublewide_mode swidm ZF T{ 倍幅モード開始 T} enter_draft_quality sdrfq ZG T{ ドラフト印字モード開始 T} enter_insert_mode smir im T{ 挿入モード開始 T} enter_italics_mode sitm ZH T{ 斜体モード開始 T} enter_leftward_mode slm ZI T{ 左向き移動モード開始 T} enter_micro_mode smicm ZJ T{ マイクロ移動モード開始 T} enter_near_letter_quality snlq ZK T{ NLQ 印字モード開始 T} enter_normal_quality snrmq ZL T{ 通常品質印字モード開始 T} enter_protected_mode prot mp T{ 保護モードオン T} enter_reverse_mode rev mr T{ 反転表示モードオン T} enter_secure_mode invis mk T{ ブランクモードオン (文字が見えない) T} enter_shadow_mode sshm ZM T{ シャドウプリントモード開始 T} enter_standout_mode smso so T{ 強調モード開始 T} enter_subscript_mode ssubm ZN T{ 下付き文字モード開始 T} enter_superscript_mode ssupm ZO T{ 上付き文字モード開始 T} enter_underline_mode smul us T{ 下線モード開始 T} enter_upward_mode sum ZP T{ 上向き移動モード開始 T} enter_xon_mode smxon SX T{ xon/xoff ハンドシェークオン T} erase_chars ech ec T{ #1 個の文字を消去 (P) T} exit_alt_charset_mode rmacs ae T{ 別の文字セット終了 (P) T} exit_am_mode rmam RA T{ 自動マージンオフ T} exit_attribute_mode sgr0 me T{ 全属性オフ T} exit_ca_mode rmcup te T{ cup を用いたプログラムを終了する文字列 T} exit_delete_mode rmdc ed T{ 削除モード終了 T} exit_doublewide_mode rwidm ZQ T{ 倍幅モード終了 T} exit_insert_mode rmir ei T{ 挿入モード終了 T} exit_italics_mode ritm ZR T{ 斜体モード終了 T} exit_leftward_mode rlm ZS T{ 左向き移動モード終了 T} exit_micro_mode rmicm ZT T{ マイクロ移動モード終了 T} exit_shadow_mode rshm ZU T{ シャドウプリントモード終了 T} exit_standout_mode rmso se T{ 強調モード終了 T} exit_subscript_mode rsubm ZV T{ 下付き文字モード終了 T} exit_superscript_mode rsupm ZW T{ 上付き文字モード終了 T} exit_underline_mode rmul ue T{ 下線モード終了 T} exit_upward_mode rum ZX T{ 逆向き移動モード終了 T} exit_xon_mode rmxon RX T{ xon/xoff ハンドシェークオフ T} fixed_pause pause PA T{ 2-3 秒待つ T} flash_hook hook fh T{ スイッチフックをフラッシュ T} flash_screen flash vb T{ 可視ベル (カーソルは移動しない) T} form_feed ff ff T{ ハードコピー端末でのページ排出 (P*) T} from_status_line fsl fs T{ ステータス行からの復帰 T} goto_window wingo WG T{ ウィンドウ #1 に移動 T} hangup hup HU T{ 電話を切る T} init_1string is1 i1 T{ 初期化文字列 T} init_2string is2 is T{ 初期化文字列 T} init_3string is3 i3 T{ 初期化文字列 T} init_file if if T{ 初期化ファイルの名前 T} init_prog iprog iP T{ 初期化プログラムのパス名 T} initialize_color initc Ic T{ 色 #1 を (#2,#3,#4) に初期化 T} initialize_pair initp Ip T{ 色ペア #1 を fg=(#2,#3,#4), bg=(#5,#6,#7) に初期化 T} insert_character ich1 ic T{ 文字の挿入 (P) T} insert_line il1 al T{ 行の挿入 (P*) T} insert_padding ip ip T{ 文字挿入の後にパディングを挿入 T} key_a1 ka1 K1 T{ キーパッドの左上キー T} key_a3 ka3 K3 T{ キーパッドの右上キー T} key_b2 kb2 K2 T{ キーパッドの中央キー T} key_backspace kbs kb T{ backspace キー T} key_beg kbeg @1 T{ begin キー T} key_btab kcbt kB T{ back-tab キー T} key_c1 kc1 K4 T{ キーパッドの左下キー T} key_c3 kc3 K5 T{ キーパッドの右下キー T} key_cancel kcan @2 T{ cancel キー T} key_catab ktbc ka T{ clear-all-tabs キー T} key_clear kclr kC T{ clear-screen キー、または erase キー T} key_close kclo @3 T{ close キー T} key_command kcmd @4 T{ command キー T} key_copy kcpy @5 T{ copy キー T} key_create kcrt @6 T{ create キー T} key_ctab kctab kt T{ clear-tab キー T} key_dc kdch1 kD T{ delete-character キー T} key_dl kdl1 kL T{ delete-line キー T} key_down kcud1 kd T{ down-arrow キー T} key_eic krmir kM T{ 挿入モードで rmir や smir が送出するデータ T} key_end kend @7 T{ end キー T} key_enter kent @8 T{ enter/send キー T} key_eol kel kE T{ clear-to-end-of-line キー T} key_eos ked kS T{ clear-to-end-of-screen キー T} key_exit kext @9 T{ exit キー T} key_f0 kf0 k0 T{ F0 ファンクションキー T} key_f1 kf1 k1 T{ F1 ファンクションキー T} key_f10 kf10 k; T{ F10 ファンクションキー T} key_f11 kf11 F1 T{ F11 ファンクションキー T} key_f12 kf12 F2 T{ F12 ファンクションキー T} key_f13 kf13 F3 T{ F13 ファンクションキー T} key_f14 kf14 F4 T{ F14 ファンクションキー T} key_f15 kf15 F5 T{ F15 ファンクションキー T} key_f16 kf16 F6 T{ F16 ファンクションキー T} key_f17 kf17 F7 T{ F17 ファンクションキー T} key_f18 kf18 F8 T{ F18 ファンクションキー T} key_f19 kf19 F9 T{ F19 ファンクションキー T} key_f2 kf2 k2 T{ F2 ファンクションキー T} key_f20 kf20 FA T{ F20 ファンクションキー T} key_f21 kf21 FB T{ F21 ファンクションキー T} key_f22 kf22 FC T{ F22 ファンクションキー T} key_f23 kf23 FD T{ F23 ファンクションキー T} key_f24 kf24 FE T{ F24 ファンクションキー T} key_f25 kf25 FF T{ F25 ファンクションキー T} key_f26 kf26 FG T{ F26 ファンクションキー T} key_f27 kf27 FH T{ F27 ファンクションキー T} key_f28 kf28 FI T{ F28 ファンクションキー T} key_f29 kf29 FJ T{ F29 ファンクションキー T} key_f3 kf3 k3 T{ F3 ファンクションキー T} key_f30 kf30 FK T{ F30 ファンクションキー T} key_f31 kf31 FL T{ F31 ファンクションキー T} key_f32 kf32 FM T{ F32 ファンクションキー T} key_f33 kf33 FN T{ F33 ファンクションキー T} key_f34 kf34 FO T{ F34 ファンクションキー T} key_f35 kf35 FP T{ F35 ファンクションキー T} key_f36 kf36 FQ T{ F36 ファンクションキー T} key_f37 kf37 FR T{ F37 ファンクションキー T} key_f38 kf38 FS T{ F38 ファンクションキー T} key_f39 kf39 FT T{ F39 ファンクションキー T} key_f4 kf4 k4 T{ F4 ファンクションキー T} key_f40 kf40 FU T{ F40 ファンクションキー T} key_f41 kf41 FV T{ F41 ファンクションキー T} key_f42 kf42 FW T{ F42 ファンクションキー T} key_f43 kf43 FX T{ F43 ファンクションキー T} key_f44 kf44 FY T{ F44 ファンクションキー T} key_f45 kf45 FZ T{ F45 ファンクションキー T} key_f46 kf46 Fa T{ F46 ファンクションキー T} key_f47 kf47 Fb T{ F47 ファンクションキー T} key_f48 kf48 Fc T{ F48 ファンクションキー T} key_f49 kf49 Fd T{ F49 ファンクションキー T} key_f5 kf5 k5 T{ F5 ファンクションキー T} key_f50 kf50 Fe T{ F50 ファンクションキー T} key_f51 kf51 Ff T{ F51 ファンクションキー T} key_f52 kf52 Fg T{ F52 ファンクションキー T} key_f53 kf53 Fh T{ F53 ファンクションキー T} key_f54 kf54 Fi T{ F54 ファンクションキー T} key_f55 kf55 Fj T{ F55 ファンクションキー T} key_f56 kf56 Fk T{ F56 ファンクションキー T} key_f57 kf57 Fl T{ F57 ファンクションキー T} key_f58 kf58 Fm T{ F58 ファンクションキー T} key_f59 kf59 Fn T{ F59 ファンクションキー T} key_f6 kf6 k6 T{ F6 ファンクションキー T} key_f60 kf60 Fo T{ F60 ファンクションキー T} key_f61 kf61 Fp T{ F61 ファンクションキー T} key_f62 kf62 Fq T{ F62 ファンクションキー T} key_f63 kf63 Fr T{ F63 ファンクションキー T} key_f7 kf7 k7 T{ F7 ファンクションキー T} key_f8 kf8 k8 T{ F8 ファンクションキー T} key_f9 kf9 k9 T{ F9 ファンクションキー T} key_find kfnd @0 T{ find キー T} key_help khlp %1 T{ help キー T} key_home khome kh T{ home キー T} key_ic kich1 kI T{ insert-character キー T} key_il kil1 kA T{ insert-line キー T} key_left kcub1 kl T{ left-arrow キー T} key_ll kll kH T{ lower-left キー (home down) T} key_mark kmrk %2 T{ mark キー T} key_message kmsg %3 T{ message キー T} key_move kmov %4 T{ move キー T} key_next knxt %5 T{ next キー T} key_npage knp kN T{ next-page キー T} key_open kopn %6 T{ open キー T} key_options kopt %7 T{ options キー T} key_ppage kpp kP T{ previous-page キー T} key_previous kprv %8 T{ previous キー T} key_print kprt %9 T{ print キー T} key_redo krdo %0 T{ redo キー T} key_reference kref &1 T{ reference キー T} key_refresh krfr &2 T{ refresh キー T} key_replace krpl &3 T{ replace キー T} key_restart krst &4 T{ restart キー T} key_resume kres &5 T{ resume キー T} key_right kcuf1 kr T{ right-arrow キー T} key_save ksav &6 T{ save キー T} key_sbeg kBEG &9 T{ シフト状態の begin キー T} key_scancel kCAN &0 T{ シフト状態の cancel キー T} key_scommand kCMD *1 T{ シフト状態の command キー T} key_scopy kCPY *2 T{ シフト状態の copy キー T} key_screate kCRT *3 T{ シフト状態の create キー T} key_sdc kDC *4 T{ シフト状態の delete-character キー T} key_sdl kDL *5 T{ シフト状態の delete-line キー T} key_select kslt *6 T{ select キー T} key_send kEND *7 T{ シフト状態の end キー T} key_seol kEOL *8 T{ シフト状態の clear-to-end-of-line キー T} key_sexit kEXT *9 T{ シフト状態の exit キー T} key_sf kind kF T{ scroll-forward キー T} key_sfind kFND *0 T{ シフト状態の find キー T} key_shelp kHLP #1 T{ シフト状態の help キー T} key_shome kHOM #2 T{ シフト状態の home キー T} key_sic kIC #3 T{ シフト状態の insert-character キー T} key_sleft kLFT #4 T{ シフト状態の left-arrow キー T} key_smessage kMSG %a T{ シフト状態の message キー T} key_smove kMOV %b T{ シフト状態の move キー T} key_snext kNXT %c T{ シフト状態の next キー T} key_soptions kOPT %d T{ シフト状態の options キー T} key_sprevious kPRV %e T{ シフト状態の previous キー T} key_sprint kPRT %f T{ シフト状態の print キー T} key_sr kri kR T{ scroll-backward キー T} key_sredo kRDO %g T{ シフト状態の redo キー T} key_sreplace kRPL %h T{ シフト状態の replace キー T} key_sright kRIT %i T{ シフト状態の right-arrow キー T} key_srsume kRES %j T{ シフト状態の resume キー T} key_ssave kSAV !1 T{ シフト状態の save キー T} key_ssuspend kSPD !2 T{ シフト状態の suspend キー T} key_stab khts kT T{ set-tab キー T} key_sundo kUND !3 T{ シフト状態の undo キー T} key_suspend kspd &7 T{ suspend キー T} key_undo kund &8 T{ undo キー T} key_up kcuu1 ku T{ up-arrow キー T} keypad_local rmkx ke T{ \&'keyboard_transmit' モードから抜ける T} keypad_xmit smkx ks T{ \&'keyboard_transmit' モードに入る T} lab_f0 lf0 l0 T{ f0 でない場合、ファンクションキー f0 のラベル T} lab_f1 lf1 l1 T{ f1 でない場合、ファンクションキー f1 のラベル T} lab_f10 lf10 la T{ f10 でない場合、ファンクションキー f10 のラベル T} lab_f2 lf2 l2 T{ f2 でない場合、ファンクションキー f2 のラベル T} lab_f3 lf3 l3 T{ f3 でない場合、ファンクションキー f3 のラベル T} lab_f4 lf4 l4 T{ f4 でない場合、ファンクションキー f4 のラベル T} lab_f5 lf5 l5 T{ f5 でない場合、ファンクションキー f5 のラベル T} lab_f6 lf6 l6 T{ f6 でない場合、ファンクションキー f6 のラベル T} lab_f7 lf7 l7 T{ f7 でない場合、ファンクションキー f7 のラベル T} lab_f8 lf8 l8 T{ f8 でない場合、ファンクションキー f8 のラベル T} lab_f9 lf9 l9 T{ f9 でない場合、ファンクションキー f9 のラベル T} label_format fln Lf T{ ラベルフォーマット T} label_off rmln LF T{ ソフトラベルオフ T} label_on smln LO T{ ソフトラベルオン T} meta_off rmm mo T{ メタモードオフ T} meta_on smm mm T{ メタモードオン (8 番目のビットオン) T} micro_column_address mhpa ZY T{ マイクロモードの column_address T} micro_down mcud1 ZZ T{ マイクロモードの cursor_down T} micro_left mcub1 Za T{ マイクロモードの cursor_left T} micro_right mcuf1 Zb T{ マイクロモードの cursor_right T} micro_row_address mvpa Zc T{ マイクロモードの row_address #1 T} micro_up mcuu1 Zd T{ マイクロモードの cursor_up T} newline nel nw T{ 改行 (cr の後に lf が来る) T} order_of_pins porder Ze T{ ソフトウェアビットを印字ヘッドピンに一致させる T} orig_colors oc oc T{ すべての色ペアを本来のものにする T} orig_pair op op T{ デフォルトのペアを本来の値にする T} pad_char pad pc T{ パディング文字 (ヌル以外) T} parm_dch dch DC T{ #1 文字を削除 (P*) T} parm_delete_line dl DL T{ #1 行を削除 (P*) T} parm_down_cursor cud DO T{ #1 行下へ (P*) T} parm_down_micro mcud Zf T{ マイクロモードの parm_down_cursor T} parm_ich ich IC T{ #1 文字を挿入 (P*) T} parm_index indn SF T{ #1 行の前進スクロール (P) T} parm_insert_line il AL T{ #1 行を挿入 (P*) T} parm_left_cursor cub LE T{ 左へ #1 文字分移動 (P) T} parm_left_micro mcub Zg T{ マイクロモードの parm_left_cursor T} parm_right_cursor cuf RI T{ 右へ #1 文字分移動 (P*) T} parm_right_micro mcuf Zh T{ マイクロモードの parm_right_cursor T} parm_rindex rin SR T{ #1 行の後退スクロール (P) T} parm_up_cursor cuu UP T{ #1 行上へ (P*) T} parm_up_micro mcuu Zi T{ マイクロモードの parm_up_cursor T} pkey_key pfkey pk T{ ファンクションキー #1 の打鍵文字列を #2 にする T} pkey_local pfloc pl T{ ファンクションキー #1 の実行文字列を #2 にする T} pkey_xmit pfx px T{ ファンクションキー #1 の送信文字列を #2 にする T} plab_norm pln pn T{ ラベル #1 に文字列 #2 を表示 T} print_screen mc0 ps T{ 画面の内容を印字する T} prtr_non mc5p pO T{ #1 バイトだけプリンタをオンにする T} prtr_off mc4 pf T{ プリンタをオフにする T} prtr_on mc5 po T{ プリンタをオンにする T} pulse pulse PU T{ パルスダイアルを選択 T} quick_dial qdial QD T{ 確認なしで電話番号 #1 にダイアルする T} remove_clock rmclk RC T{ 時計を削除 T} repeat_char rep rp T{ 文字 #1 を #2 回繰り返す (P*) T} req_for_input rfi RF T{ (pty 用に) 次の入力文字を送る T} reset_1string rs1 r1 T{ リセット文字列 T} reset_2string rs2 r2 T{ リセット文字列 T} reset_3string rs3 r3 T{ リセット文字列 T} reset_file rf rf T{ リセットファイルの名前 T} restore_cursor rc rc T{ 最後の save_cursor の位置にカーソルを戻す T} row_address vpa cv T{ 垂直絶対位置 #1 (P) T} save_cursor sc sc T{ 現在のカーソル位置を保存 (P) T} scroll_forward ind sf T{ テキストを上にスクロール (P) T} scroll_reverse ri sr T{ テキストを下にスクロール (P) T} select_char_set scs Zj T{ 文字セット #1 の選択 T} set_attributes sgr sa T{ ビデオ属性を #1-#9 に定義 (PG9) T} set_background setb Sb T{ 背景色を #1 に設定 T} set_bottom_margin smgb Zk T{ 下マージンを現在行に設定 T} set_bottom_margin_parm smgbp Zl T{ 下マージンを #1 行目か (smgtp が与えられていなければ) 下から #2 行目にする .\" Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom T} set_clock sclk SC T{ 時計を #1 時 #2 分 #3 秒に設定 T} set_color_pair scp sp T{ 現在の色ペアを #1 に設定 T} set_foreground setf Sf T{ 前景色を #1 に設定 T} set_left_margin smgl ML T{ 左ソフトマージンを現在桁に設定 smgl を参照 (ML は BSD の termcap とは違います) T} set_left_margin_parm smglp Zm T{ 左 (右) マージンを桁 #1 に設定 T} set_right_margin smgr MR T{ 右ソフトマージンを現在桁に設定 T} set_right_margin_parm smgrp Zn T{ 右マージンを桁 #1 に設定 T} set_tab hts st T{ 全行のタブを現在の桁に設定 T} set_top_margin smgt Zo T{ 上マージンを現在行に設定 T} set_top_margin_parm smgtp Zp T{ 上 (下) マージンを行 #1 に設定 T} set_window wind wi T{ 現在のウィンドウを行 #1-#2、桁 #3-#4 とする T} start_bit_image sbim Zq T{ ビットイメージグラフィック印字の開始 T} start_char_set_def scsd Zr T{ #2 個の文字からなる文字セット #1 の定義の開始 T} stop_bit_image rbim Zs T{ ビットイメージグラフィック印字の終了 T} stop_char_set_def rcsd Zt T{ 文字セット #1 の定義の終了 T} subscript_characters subcs Zu T{ 下付き文字となりうる文字のリスト T} superscript_characters supcs Zv T{ 上付き文字となりうる文字のリスト T} tab ht ta T{ 次の 8 文字分のハードウェアタブストップへのタブ文字 T} these_cause_cr docr Zw T{ これらの文字のうちのいずれかの印字は CR を引き起こす T} to_status_line tsl ts T{ ステータス行の列 #1 に移動 T} tone tone TO T{ タッチトーンダイアルを選択 T} underline_char uc uc T{ 文字 1 つに下線を付け、次の文字に移動 T} up_half_line hu hu T{ 半行上へ T} user0 u0 u0 T{ ユーザ文字列 #0 T} user1 u1 u1 T{ ユーザ文字列 #1 T} user2 u2 u2 T{ ユーザ文字列 #2 T} user3 u3 u3 T{ ユーザ文字列 #3 T} user4 u4 u4 T{ ユーザ文字列 #4 T} user5 u5 u5 T{ ユーザ文字列 #5 T} user6 u6 u6 T{ ユーザ文字列 #6 T} user7 u7 u7 T{ ユーザ文字列 #7 T} user8 u8 u8 T{ ユーザ文字列 #8 T} user9 u9 u9 T{ ユーザ文字列 #9 T} wait_tone wait WA T{ ダイアルトーンを待つ T} xoff_character xoffc XF T{ XOFF 文字 T} xon_character xonc XN T{ XON 文字 T} zero_motion zerom Zx T{ 次の文字表示を移動無しで行う T} .TE .ad 以下の文字列ケーパビリティは、SVr4.0 の term 構造体に存在していますが、 マニュアルで未だに説明がなされていません。 .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw18. \fBvariable cap- TCap 説明\fR \fB文字列 name Code\fR alt_scancode_esc scesa S8 T{ スキャンコードエミュレーションのための別のエスケープ文字 T} bit_image_carriage_return bicr Yv T{ 同一行の先頭へ移動 T} bit_image_newline binel Zz T{ ビットイメージの次の行に移動 T} bit_image_repeat birep Xy T{ ビットイメージセル #1 を #2 回繰り返す T} char_set_names csnm Zy T{ 文字セットの名のリストから #1 番目の item を生成する T} .\" 2002/12/24 oh:item の意味不明 : Produce #1'th item from list of character set names code_set_init csin ci T{ 複数コードセットの初期化シーケンス T} color_names colornm Yw T{ 色 #1 に名前を与える T} define_bit_image_region defbi Yx T{ 矩形のビットイメージ領域を定義 T} device_type devt dv T{ 言語/コードセットサポートの指定 T} display_pc_char dispc S1 T{ PC 文字 #1 を表示 T} end_bit_image_region endbi Yy T{ ビットイメージ領域の終了 T} enter_pc_charset_mode smpch S2 T{ PC 文字表示モード開始 T} enter_scancode_mode smsc S4 T{ PC スキャンコードモード開始 T} exit_pc_charset_mode rmpch S3 T{ PC 文字表示モード終了 T} exit_scancode_mode rmsc S5 T{ PC スキャンコードモード終了 T} get_mouse getm Gm T{ curses がボタンイベントを取得すべき。パラメータ #1 は文書化されていない T} key_mouse kmous Km T{ マウスイベントが起きた T} mouse_info minfo Mi T{ マウス状態の情報 T} pc_term_options pctrm S6 T{ PC 端末オプション T} pkey_plab pfxl xl T{ ファンクションキー #1 に文字列 #2 を送信させ文字列 #3 を表示させる T} req_mouse_pos reqmp RQ T{ マウス位置の要求 T} scancode_escape scesc S7 T{ スキャンコードエミュレーションのためのエスケープ T} set0_des_seq s0ds s0 T{ コードセット 0 にシフト (EUC セット 0、ASCII) T} set1_des_seq s1ds s1 T{ コードセット 1 にシフト T} set2_des_seq s2ds s2 T{ コードセット 2 にシフト T} set3_des_seq s3ds s3 T{ コードセット 3 にシフト T} set_a_background setab AB T{ ANSI エスケープシーケンスを使って背景色を #1 に設定 T} set_a_foreground setaf AF T{ ANSI エスケープシーケンスを使って前景色を #1 に設定 T} set_color_band setcolor Yz T{ リボンの色を #1 に変更 T} set_lr_margin smglr ML T{ 左右両マージンを #1、#2 に設定、(ML は BSD の termcap のものと違います) T} set_page_length slines YZ T{ ページ長を #1 行に設定 T} set_tb_margin smgtb MT T{ 上下両マージンを #1、#2 に設定 T} .TE .ad .in .8i XSI Curses 規格では以下のものが追加されています。 それらは、例えば、 Solaris 2.5 や IRIX 6.x など、4.1 以降のバージョンの System V の、 curses のものです。 それらの \fBncurses\fR termcap 名はでっちあげました。XSI Curses 規格に従うと、 termcap 名はありません。コンパイルされた terminfo エントリがこれらを 使っていれば、SVr4.1 以降の System V terminfo エントリとは バイナリ互換ではないかも知れません。用心してください! .na .TS H center expand; c l l c c l l c lw25 lw6 lw2 lw20. \fBvariable cap- TCap 説明\fR \fB文字列 name Code\fR enter_horizontal_hl_mode ehhlm Xh T{ 水平ハイライトモードに入る T} enter_left_hl_mode elhlm Xl T{ 左ハイライトモードに入る T} enter_low_hl_mode elohlm Xo T{ 下ハイライトモードに入る T} enter_right_hl_mode erhlm Xr T{ 右ハイライトモードに入る T} enter_top_hl_mode ethlm Xt T{ 上ハイライトモードに入る T} enter_vertical_hl_mode evhlm Xv T{ 垂直ハイライトモードに入る T} set_a_attributes sgr1 sA T{ ビデオ属性の 2 番目の組を #1-#6 と定義 T} set_pglen_inch slength sL T{ ページ長を 100分の #1 インチに設定 T} .TE .ad -.\" $Id: terminfo.5,v 1.8 2003-01-09 06:03:12 horikawa Exp $ +.\" $Id: terminfo.5,v 1.9 2003-05-12 03:49:00 horikawa Exp $ .\" Beginning of terminfo.tail file .ps +1 .PP .SS エントリの例 .PP 以下のエントリは、ANSI 規格端末を記述したものですが、現代的な端末の \fBterminfo\fR エントリが典型的にはどのようであるかを表しています。 .PP .nf .in -2 .ta .3i .ft CW \s-2ansi|ansi/pc-term compatible with color, mc5i, colors#8, ncv#3, pairs#64, cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC, cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM, ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I, ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT, kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B, kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V, kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P, kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U, kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%-%db, rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm, setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m, sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n, u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2 .in +2 .fi .ft R .PP 2 行目以後の行先頭に空白類文字を置くことで、 エントリを複数行に分けて継続して書くことができます。 行先頭に ``#'' を置くことでコメントを含めることができます。 .I terminfo のケーパビリティには、3 つの型があります。 ブール値ケーパビリティは、その端末がある特性を有しているかどうかを表します。 数値ケーパビリティは、その端末の大きさや、遅延の大きさを指定します。 文字列ケーパビリティは、端末のある機能を実行させる際に用いるシーケンスを 指定します。 .PP .SS ケーパビリティの型 .PP すべてのケーパビリティには名前があります。例えば、ANSI 標準端末が .I "自動マージン" (つまり、行の端に到達すれば自動的に復帰改行がなされること) を有することは ケーパビリティ \fBam\fR で表されます。 よって ansi の記述は \fBam\fR を含みます。 数値ケーパビリティの後には文字 `#' が続き、そして正の値が続きます。 \fBcols\fR は、その端末の桁数を表しており、ansi では、 この値は `80' であることを示します。 数値ケーパビリティの値は、プログラミング言語 C の規約を使って 10 進数、 8 進数、16 進数で与えることができます (例えば、255、0377、0xff、0xFF)。 .PP 最後に、文字列ケーパビリティは、\fBel\fR (行末まで消去するシーケンス) などの ように、2 文字のコードと、`=' と、その先の `,' までの間の文字列とで 表されます。 .PP 文字列ケーパビリティの中で、文字のエンコードを簡単にするために、 いくつかのエスケープシーケンスが利用できます。 \fB\eE\fR と \fB\ee\fR はともに、\s-1ESCAPE\s0 文字にマップされます。 \fB^x\fR は任意の適切な x に関して control-x にマップされます。 \fB\en \el \er \et \eb \ef \es\fR はそれぞれ、改行、ラインフィード、復帰、 タブ、バックスペース、フォームフィード、空白にマップされます。 その他に、\fB\e^\fR は \fB^\fR に、 \fB\e\e\fR は \fB\e\fR に、 \fB\e\fR, はコンマに、 \fB\e:\fR は \fB:\fR に、 \fB\e0\fR はヌル文字にマップされます。 (\fB\e0\fR は \e200 を生成します。これは文字列を終端しませんが、 ほとんどの端末では CS7 が指定されているので、ヌル文字と同様の挙動を 示すからです。stty(1) を参照してください) 最後に、\fB\e\fR の後に 8 進 3 桁の数を指定して文字を表すこともできます。 .PP ミリ秒単位の遅延は、\fBel\fP=\eEK$<5> のように、文字列ケーパビリティの どの場所でも $<..> のブラケットで囲んで置くことができます。 この遅延を与えるためのパディングは、関数 .I tputs が行います。遅延は 1/10 の精度の数である必要があります。接尾辞 `*'、'/' またはその両方がついているかもしれません。`*' はパディングをその処理で 影響を受ける行の行数に比例させる必要があること、そしてその総計は 影響を受ける 1 単位あたりの必要パディングにより決まることを表します。 (文字挿入の場合、乗数は影響を受ける .IR 行 の数です) 通常、デバイスに \fBxon\fR ケーパビリティがあれば、パディングは 勧告的なものです。コスト計算には使われますが遅延を引き起こしません。 `/' 接尾辞はパディングが必須のものであることを示し、フロー制御を示す \fBxon\fR があるデバイスに対しても指定されたミリ秒単位の遅延を強制します。 .PP あるケーパビリティをコメントアウトせねばならない場合があります。 そういう場合は、ケーパビリティ名の前にピリオドを置いてください。 上の例の 2 番目の .B ind がその例です。 .br .ne 5 .PP .SS コンパイルされた記述の読み込み .PP 環境変数 TERMINFO が設定されていれば、それは作業中の記述を コンパイルしたものを含むディレクトリのパス名と解釈されます。 そのディレクトリだけを探します。 .PP TERMINFO が設定されていなければ、\fBncurses\fR 版の terminfo 読み込みコードは その代わりにディレクトリ \fB$HOME/.terminfo\fR からコンパイルされた記述を 探します。 そこで見つけるのに失敗し、環境変数 TERMINFO_DIRS が設定されていれば、 変数の内容をコロンで区切られた探すべきディレクトリのリストと解釈します (空のエントリは \fI\*d\fR を探すコマンドとして解釈されます)。 TERMINFO_DIRS ディレクトリのいずれにも記述が見つからなければ、読み込みは 失敗します。 .PP TERMINFO も TERMINFO_DIRS も設定されていなければ、最後に試みられる場所は システムの terminfo ディレクトリ \fI\*d\fR です。 .PP (\fB$HOME/.terminfo\fR 探索も TERMINFO_DIRS 拡張も 標準の System V terminfo/curses ではサポートされていません。) .PP .SS 端末記述の準備 .PP ここでは、どのようにして端末の記述を準備するかの概略を説明します。 もっとも効率的なやり方は、 .I terminfo の中にある類似の端末の記述をまねて作成することです。 .I vi などのスクリーンエディタに書き掛けの記述を使わせてみて、その記述が 正しいかどうかをチェックしながら、記述を徐々に作り上げてゆくことです。 通常のものとあまりにもかけ離れた端末の場合、 .I terminfo ファイルの記述能力の欠陥、もしくはテストプログラムの画面操作のコードの バグが明らかになるかも知れないので、それには注意してください。 .PP (端末メーカが文書に書いてくれていない場合に) 行の右挿入の際のパディングを 得るには、大きなファイルを 9600 ボーで編集し、画面の中ほどで 16 行程度を 削除してから、 `u' キーを数度すばやく連打するという厳しいテストを行 うとよいでしょう。 端末がぐちゃぐちゃになるのなら、普通は、もう少しパディングが必要だと いうことです。文字挿入についても似たようなテストを行うことができます。 .PP .SS 基本的なケーパビリティ .PP 端末の各行の桁数は数値型ケーパビリティ \fBcols\fR で指定します。 端末が \s-1CRT\s0 の場合、画面の行数はケーパビリティ \fBlines\fR で 指定します。 カーソルが右マージンに達したときに次の行の左端に回り込む場合、 ケーパビリティ \fBam\fR を指定する必要があります。 端末が、画面消去後カーソルをホームポジションにもってゆくことができる場合、 その機能は文字列ケーパビリティ \fBclear\fR で指定します。 端末が (ある文字を上に出力した時にその場所を消去するのではなく) 重ね打ちする場合、ケーパビリティ \fBos\fR を指定する必要があります。 印字端末で、ソフトコピー装置を持たない場合、 .B hc と .BR os とを指定します。 .RB ( os は、ハードコピー端末や、APL 端末だけでなく、\s-1TEKTRONIX\s+1 4010 シリーズのようなストレージスコープ管端末にも適用されます。) 現在の行の左端にカーソルを移動させるコードが存在する場合、それを .BR cr で指定します。 (通常、これは復帰文字、つまり control M になります。) 可聴シグナル (ベル、ビープ音など) を生成するコードがある場合、それを .BR bel で指定します。 .PP カーソルを (バックスペースのように) 1 ポジションだけ左へ移動させる コードがある場合、それは .BR cub1 で指定します。 同様に、右への移動、上への移動、下への移動はそれぞれ、 .BR cuf1 , .BR cuu1 , .BR cud1 で指定します。 これらの局所的カーソル移動機能は、通過する場所のテキストを変更するもので あってはなりません。たとえば、空白文字はその下のテキストを消去してしまう ため、普通は `\fBcuf1\fP=\ ' とは指定しません。 .PP ここで極めて重要なこととして、 .I terminfo にエンコードされた局所的カーソル移動は、\s-1CRT\s0 端末の左端および 上端では定義されないということです。 プログラムは、 .B bw の指定がない限り、左端でバックスペースを出力しようとしてはいけません。 また、画面上端で、上に移動しようとしてはいけません。 テキストを上にスクロールするためには、プログラムは画面左下隅にカーソルを 移動させて、 .B ind (index) 文字列を送出してください。 .PP テキストを下にスクロールするには、プログラムは画面左上隅にカーソルを 移動させて、 .B ri (reverse index) 文字列を送出してください。 文字列 .B ind と .B ri の挙動は、それぞれ先に述べた画面隅にカーソルがない場合には 定義されていません。 .PP スクロールシーケンスのパラメータ付きバージョンは、 .B indn と .B rin で、これらは、スクロールする行数を指定するパラメータを 1 つ取ることを除いては .B ind や .B ri と、同じ挙動を示します。 これらも、カーソルが適切な画面端に存在しない場合の挙動は定義されません。 .PP ケーパビリティ \fBam\fR は、右端でテキストが出力されてもカーソルが 右端に留まり続けるかどうかを示します。ただし、この挙動は最終桁での .B cuf1 の挙動には必ずしも適用されません。 左端からの局所的移動で定義されたものは、 .B bw が指定されている場合に、左端からの .B cub1 が 1 つ前の行の右端に移動するということだけです。 .B bw が指定されていない場合、この効果は定義されません。 これは、例えば、画面の端に沿って箱を描くときに便利なものです。 端末が自動マージン機能を切り替え可能な場合、 .I terminfo ファイルでは、通常はその機能はオン状態、つまり \fBam\fR であると想定します。 端末が次の行の先頭桁に移動するコマンドを持つ場合、そのコマンドを .B nel (newline) で指定することができます。 このコマンドが、現在行の残りの部分を消去するかどうかは関係ありません。 ですから、端末が、 .B cr や .B lf を持たない場合でも、動作する .B nel を作ることは可能でしょう。 .PP これまで紹介したケーパビリティで、ハードコピー端末や、\*(lqガラスの tty\*(rq 端末を記述するには十分です。 ここで、model 33 teletype は、 .PP .DT .nf .ft CW .in -7 \s-133\||\|tty33\||\|tty\||\|model 33 teletype, bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1 .in +7 .ft R .PP と記述されます。一方、Lear Siegler 社の \s-1ADM\-3\s0 は、 .PP .DT .nf .ft CW .in -7 \s-1adm3\||\|3\||\|lsi adm3, am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, ind=^J, lines#24,\s+1 .in +7 .ft R .fi .PP と記述されます。 .PP .SS パラメータ化された文字列 .PP カーソル位置設定など、パラメータを必要とする文字列は、 .IR printf (3S) 風のエスケープ \fB%x\fR を含むパラメータ化文字列ケーパビリティを用いて 記述します。 例えば、カーソル位置を指定する .B cup ケーパビリティは、移動先の行と桁を指定する 2 つのパラメータを与える必要が あります。 (行と桁は 0 から数え、ユーザに見える物理画面を参照します。目に見えない メモリ部分は参照しません。) 端末がメモリ相対のカーソル位置指定機能を持つ場合、これは .BR mrcup で表します。 .PP パラメータ渡し機構では、スタックと、それを操作する特別の \fB%\fP コードを 用います。通常は、シーケンスはパラメータを 1 つスタックにプッシュし、 それをある形式で出力します。 もっと複雑な操作が必要なこともしばしばあります。 .PP \fB%\fR コードには以下の意味があります。 .PP .DT .nf .ta .5i 1.5i \s-1%% `%' を出力する %\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP \fBprintf\fP でのように、フラグは [-+#] とスペース %c printf() の %c のように、pop() を表示する %s printf() の %s のように、pop() を表示する %p[1-9] \fIi\fP 番目のパラメータをプッシュする %P[a-z] pop() を動的変数 [a-z] に設定する %g[a-z] 動的変数 [a-z] をプッシュする %P[A-Z] pop() を静的変数 [a-z] に設定する %g[A-Z] 静的変数 [a-z] をプッシュする %'\fIc\fP' 文字定数 \fIc\fP %{\fInn\fP} 整数定数 \fInn\fP %l strlen(pop) をプッシュする %+ %- %* %/ %m 算術演算 (%m は剰余): push(pop() op pop()) %& %| %^ ビット演算: push(pop() op pop()) %= %> %< 論理演算: push(pop() op pop()) %A, %O 論理 and 操作と論理 or 操作 (条件節用) %! %~ 単項演算 push(op pop()) %i 最初の 2 パラメータに 1 を足す (ANSI 端末用) %? expr %t thenpart %e elsepart %; if-then-else, %e elsepart はオプション。 else-if は Algol 68 風に指定可能: %? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %; \s+1 c\di\u は条件節、b\di\u は本体。 .fi .PP 二項演算は、通常の順序で並べたオペランドに対して後置形式で指定します。 例えば、x-5 を得るには、"%gx%{5}%-" を指定します。 エスケープされた文字列を評価する間 %P 変数と %g 変数は存続します。 .PP HP2645 の例を考えてみましょう。これで 3 行 12 桁に移動させるには、 \eE&a12c03Y に 6 ミリ秒のパディングを送出する必要があります。 ここで行と桁とが逆になっていることと、 行、桁とも 2 桁で出力されていることに注意してください。 この端末の \fBcup\fR ケーパビリティは、\*(lqcup=6\eE&%p2%2dc%p1%2dY\*(rq となります。 .PP Microterm \s-1ACT-IV\s0 は、\fB^T\fR の後に現在の行と桁を、 どちらも単にバイナリ値で送る必要がありますが、 \*(lqcup=^T%p1%c%p2%c\*(rq となります。 \*(lq%c\*(rq を使う端末は、カーソルを前方に戻すこと (\fBcub1\fR) と 画面上で 1 行上にカーソルを移動させること (\fBcuu1\fR) ができる必要があります。 これは、システムが変更したり握りつぶしたりする可能性があるため、 \fB\en\fR, \fB^D\fR, \fB\er\fR を確実に送信できるとは限らないからです。 (terminfo を扱うライブラリルーチンは、タブが決して展開されないように 端末モードを設定します。ですから \et は確実に送信できます。 これは Ann Arbor 4080 では重要なことが分っています。) .PP 最後の例は \s-1LSI ADM\s0-3a です。これは行と桁を空白文字からのオフセットで 表します。ですから、\*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq となります。 `\eE=' を送出した後、最初のパラメータをプッシュし、空白文字の ASCII 値 (32) を をプッシュし、それらを加えて (以前の 2 つの値の代わりにその和をスタックに プッシュし) 得た値を文字として出力します。 その後、2 番目のパラメータについても同様の処理を行います。 スタックを使うことで、さらに複雑な計算も可能です。 .PP .SS カーソル移動 .PP カーソルを高速にホームポジション (画面の左上隅) に移動させる方法を持つ 端末の場合、これを \fBhome\fR で指定することができます。同様に、高速に 左下隅に移動させる方法を持つ場合も \fBll\fR で指定することができます。 端末によっては、ホームポジションから \fBcuu1\fR を使って上に移動する ことでこの動作が可能な場合もありますが、 プログラムは (\fBll\fRでそう指定しない限り) 自分からそうしては ならないことになっています。これは、ホームポジションから上に移動した 場合の動作について、プログラムは一切想定できないからです。 ホームポジションは位置指定 (0,0)、つまり、メモリではなく、画面の左上隅と 等しいことに注意してください。 (ですから、HP 端末の \eEH のシーケンスは .BR home として使用できません。) .PP 端末が行や桁の絶対カーソル位置指定機能を持つ場合、単一パラメータを取る ケーパビリティ .B hpa (水平絶対位置) と .B vpa (垂直絶対位置) で指定します。 (hp2645 のような) 一般的な 2 パラメータのシーケンスよりもこれらの方が 短くなる場合がときどきあり、その場合、 .BR cup よりもそれらを使う可能性があります。 パラメータ化された局所移動機能 (例えば、 .I n 桁右へ移動する) が存在する場合、これらは、いくつ移動するかを指定する パラメータを 1 つ持つ .BR cud , .BR cub , .BR cuf , .BR cuu を使って指定することができます。 これらは主に、\s-1TEKTRONIX\s+1 4025 のように端末が .BR cup を持たない場合に有益です。 .PP これらのケーパビリティを使用するプログラムを実行する際に、端末を 特殊なモードにする必要がある場合、このモードに入るコードと出るコードをそれぞれ \fBsmcup\fR と \fBrmcup\fR で指定することができます。 こういう事態が生じる場合として、例えば Concept のように、複数ページの メモリを持つ端末があります。 画面相対指定を持たず、メモリ相対のカーソル位置指定機能しか持たない この端末の場合、画面の大きさのウィンドウ 1 枚を端末に固定で割り付け、 カーソル位置指定を適切にできるようにしなければなりません。 このケーパビリティは \s-1TEKTRONIX\s+1 4025 でも使用されています。 こちらでは、 .B smcup で、terminfo で使用するコマンド文字を設定しています。 \fBrmcup\fP シーケンス が出力された後に、\fBsmcup\fP シーケンスが画面を (\fBrmcup\fP を出力する前の状態に) 回復しないならば、\fBnrrmc\fP を 指定してください。 .PP .SS 領域消去 .PP 端末がカーソルを動かさずに、現在位置から行の末端まで消去可能である場合、 これを \fBel\fR で指定すべきです。 端末がカーソルを動かさずに、行の先頭から現在位置を含めて現在位置まで 消去可能である場合、これを \fBel1\fP で指定すべきです。 端末が現在位置から画面の終りまでを消去可能な場合、これを \fBed\fR で 指定すべきです。 \fBed\fR は行の第 1 桁から行う場合のみ定義されます。 (ですから、まともな .B ed が利用できない場合でも、大量の行削除リクエストを使ってシミュレート可能です。) .PP .SS 行の挿入/削除と垂直移動 .PP カーソルのある行の前に空白行を新規につくることができる端末の場合、 これを \fBil1\fR で指定すべきです。これは、行の先頭位置でのみ行われます。 作成後、カーソルは新しくできた空白行に置かれる必要があります。 端末がカーソルのある行を削除できる場合、これを \fBdl1\fR で指定すべきです。 この機能は削除される行の先頭でのみ行われます。 .B il1 と .B dl1 の変種で、挿入/削除する行数を表すパラメータを 1 つ取るものは、 .B il と .BR dl とで指定できます。 .PP (vt100 のように) スクロール領域を設定可能な端末の場合、 領域設定コマンドを .B csr ケーパビリティを用いて指定可能です。このケーパビリティは 2 つのパラメータ、 スクロール領域の先頭行と最終行、を取ります。 困ったことに、このコマンド実行後のカーソル位置は定義されません。 .PP 適切な領域に .B csr を用いることで行の挿入/削除の効果を得ることが可能です。 .B sc と .B rc (カーソルの保存と回復) コマンドは、合成した挿入/削除文字列がカーソルを 動かさないことを保証するには有用でしょう。 (\fBncurses\fR(3X) ライブラリは自動的にこの合成を行うので、 \fBcsr\fR で挿入/削除文字列をエントリ用につくる必要はないことに 注意してください。) .PP 挿入と削除を構成するもう 1 つの方法は、(HP-700/90 シリーズには挿入/削除は ありますが、このシリーズのような) いくつかの端末にあるメモリロック機能と index を組み合わせて使うことです。 .PP まともな行挿入/削除コマンドを持たない端末で、画面の最上端もしくは 最下端で行を挿入する場合、 .B ri もしくは .B ind を使って行うこともできます。まともな行挿入/削除コマンドを持つ場合でも、 これらを使う方が速い場合が多いです。 .PP スクロールする各ウィンドウが実質的に画面大のキャンバス上のビューポートで あるなら、ブール値 \fBnon_dest_scroll_region\fR を設定すべきです。 このケーパビリティをテストするためには、画面の中央にスクロール領域をつくり、 最下行に何かを書き、領域の一番上にカーソルを動かし、\fBri\fR を行った後 \fBdl1\fR か \fBind\fR を行ってください。 \fBri\fR で領域の下へとスクロールして消えたデータが、 再び現れるなら、スクロールは非破壊的です。System V Curses と XSI Curses は \fBind\fR, \fBri\fR, \fBindn\fR, \fBrin\fR が破壊的スクロールを シミュレーションすることを期待します。 これが本当でない限り \fBcsr\fR を定義しないようにと文書には注意書きがあります。 この \fBcurses\fR の実装はより寛大で、\fBndstr\fR が定義されていれば スクロールの後に明示的に消去を行います。 .PP メモリの一部に、すべてのコマンドが影響するウィンドウを定義することが できる端末の場合、それは、パラメータ化文字列 .BR wind で指定すべきです。 メモリ中での開始行、終了行、開始桁、終了桁を表す 4 パラメータは、 この順番で与えます。 .PP 上側の表示メモリを保持できる端末の場合、\fBda\fR ケーパビリティを 指定すべきです。下側の表示メモリを保持できる場合、\fBdb\fR を指定すべきです。 これらは、行削除やスクロールにより、画面最下端に非空白行が上がってくること、 および、\fBri\fR による逆スクロールにより非空白行が下がってくることを表します。 .PP .SS 文字の挿入/削除 .PP .I terminfo で記述可能な文字の挿入/削除に関して、基本的には 2 種類の インテリジェント端末があります。 もっとも標準的な文字挿入/削除機能は、現在行の文字のみが影響を受け、 シフトした文字は一体となって移動し行端で消えて行くものです。 その他の端末、例えば Concept 100 や Perkin Elmer Owl のようなものの場合、 表示出力された空白とそうでない空白との間に区別があります。挿入/削除に ともなうシフトは画面上の表示出力されていない空白に対してのみ適用され、 それぞれ空白の消滅、もしくは表示出力されていない空白 2 つになります。自分が 持っている端末がどちらのタイプかを調べるには、画面を消去してから、カーソル 移動を用いてテキストを 2 箇所に分けて出力します。\*(lqabc\*(rq と \*(lqdef\*(rq の間に (空白文字でなく) 局所的カーソル移動を用いて \*(lqabc\ \ \ \ def\*(rq を出力してください。 その後、カーソルを \*(lqabc\*(rq の前に移動させ、端末を挿入モードにします。 文字を打ち込むと、行の残りが一体となってシフトして行の端で文字がこぼれ おちてゆくならば、この端末は表示出力された空白とそうでない空白を区別しません。 \*(lqabc\*(rq がシフトして \*(lqdef\*(rq に当りその後はそれらが一緒に 行の端まで進み、次の行まで進むならば、この端末は 2 番目のタイプのもので \*(lqinsert null\*(rq を表すケーパビリティ \fBin\fR を指定すべきです。 論理的には、これらは別の属性 (挿入モードが 1 行か複数行か、および、 表示出力されていない空白を特別扱いするか否か) ですが、挿入モードを この属性 1 つで記述できない端末に、今までお目にかかったことはありません。 .PP terminfo では、挿入モードを持つ端末も、現在行の上で場所を空ける短い シーケンスを送る端末も、両方とも記述することができます。 挿入モードに入るシーケンスは \fBsmir\fR で指定してください。 挿入モードから出るシーケンスは \fBrmir\fR で指定してください。 挿入したい文字の直前に、あるシーケンスを送出する必要がある場合は \fBich1\fR で指定してください。まともな挿入モードを持つ端末のほとんどでは、 \fBich1\fR を指定することはないでしょう。 一方、画面上で場所を空けるシーケンスを送る端末の場合は、 \fBich1\fR を指定すべきです。 .PP 両方持つ端末の場合、通常は \fBich1\fR よりも挿入モードの方が望ましいでしょう。 技術的には、実際に両方を組み合わせて使用する必要がある場合以外は、両方同時に 指定すべきではありません。よって、両方あると curses を使わない アプリケーションの中には混乱するものがあります。その兆候は、挿入を使った 更新の時に文字が二重になることです。この要求は現在では稀です。ほとんどの \fBich\fR シーケンスはその前に smir を必要とはせず、 ほとんどの smir 挿入モードは各文字の前に \fBich1\fR を必要とはしません。 よって、新しい \fBcurses\fR は実際にこれが真実だと仮定し、 \fBrmir\fR/\fBsmir\fR か \fBich\fR/\fBich1\fR のどちらか一方 (両方では ありません) を適切なものとみなして利用します。もし、両方を必要とするほど 古い端末のエントリを、新しい curses で使うために書く必要があるなら、 \fBich1\fR に \fBrmir\fR/\fBsmir\fR シーケンスを含めてください。 .PP 挿入後のパディングが必要な場合、\fBip\fR (文字列オプション) に必要なミリ秒の 数を指定してください。その他のシーケンスで文字 1 文字を挿入後に送出する 必要のあるものを、いっしょに \fBip\fR で指定することもできます。 「挿入モード」に入り、かつ挿入する文字ごとにあるコードを付けて 送出する必要のある端末の場合、 .BR smir / rmir と .B ich1 とを両方とも指定してください。そうすることで、それらが使われるようになります。 .B ich ケーパビリティはパラメータ .IR n 1 つをとり、これは .B ich1 の動作を .I n 回繰り返します。 .PP 挿入モードでないとき、文字入力の間にパディングが必要なら、\fBrmp\fP に ミリ秒のパディングの数を指定してください。 .PP 挿入モードの途中で同じ行の文字を削除するために、カーソルを動かす必要がある 場合があります (例えば、挿入位置の後にタブがある場合)。挿入モードに 入ったままでカーソルを移動させることができる場合、このような場合の挿入を 高速に行うために、ケーパビリティ \fBmir\fR を指定することができます。 \fBmir\fR を省略しても、影響を受けるのは速度のみです。 端末によっては (有名な Datamedia のアレとか) 挿入モードの 動作方法の違いにより \fBmir\fR を指定してはいけないものがあります。 .PP 最後に、文字 1 文字の削除用として .B dch1 を、 .I n 文字 削除用としてパラメータ .IR n 1 つをとる .B dch を、そして \fBsmdc\fR と \fBrmdc\fR をそれぞれ削除モードに入る シーケンスとそこから出るシーケンスとして与えることで 削除モード ( .B dch1 が動作するために、端末が入っていなければならないモード) を指定することが できます。 .PP .I n 文字を削除する (カーソルを移動させずに空白を .I n 個出力することと同等の処理) ためのコマンドは、パラメータを 1 つとる .B ech を使って指定することができます。 .PP .SS "ハイライト・下線・可視ベル" .PP 端末が 1 つまたはそれ以上の表示属性を持つ場合、これらを表す方法として異なった やり方がいくつかあります。 エラーメッセージや他の種類の注意を引くメッセージに適した、十分コントラストが 高く目立つ形式から 1 つ、\f2強調モード\fR を選択すべきです。 (選ぶなら、反転表示に半輝度を加えたもの、もしくは単に反転のみがよいでしょう。) 強調モードに入るシーケンス、出るシーケンスはそれぞれ \fBsmso\fR と \fBrmso\fR で指定します。 TVI 912 や Teleray 1061 のように、強調モードへの出入りにより画面に空白が 1 つ 2 つ残る場合、\fBxmc\fR を指定して空白がいくつ残るかを教えるべきです。 .PP 下線引きを開始するコード、終了するコードは、それぞれ \fBsmul\fR と \fBrmul\fR で指定します。 Microterm Mime のように、現在位置の文字に下線を引き、空白 1 つ分 カーソルを右に移動するコードを持つ端末の場合、そのコードを \fBuc\fR で 指定することができます。 .PP その他もろもろの強調モードに入るケーパビリティには、 .B blink (点滅) .B bold (太字もしくは更に明るい) .B dim (暗いもしくは半輝度) .B invis (空白もしくは見えないテキスト) .B prot (保護状態) .B rev (反転表示) .B sgr0 ( .I すべての 属性モードをオフにする) .B smacs (別の文字セットモードに入る) and .B rmacs (別の文字セットモードから出る) が含まれます。 これらのモードのどれか 1 つをオンにした場合に、他のモードがオフになる場合も ありますし、ならない場合もあります。 .PP モードの任意の組み合わせを設定するシーケンスが存在する場合、それを 9 つのパラメータを持つ .B sgr (属性の設定) で指定します。 パラメータのそれぞれは、0 か非 0 の値を取り、対応する属性がオンかオフかを 表します。 9 つのパラメータとは、順に、強調、下線、反転表示、点滅、暗い表示、太字、 空白、保護、別の文字セットです。 必ずしもすべてのモードが .BR sgr によってサポートされている必要はありません。 独立した属性コマンドが存在するものだけで構いません。 .PP 例えば、DEC vt220 は以下のモードのほとんどをサポートします。 .PP .TS center; l c c l c c lw28 lw6 lw2 lw20. \fBtparm パラメータ 属性 エスケープシーエンス\fP none なし \\E[0m p1 強調 \\E[0;1;7m p2 下線 \\E[0;4m p3 反転表示 \\E[0;7m p4 点滅 \\E[0;5m p5 暗い表示 利用できません p6 太字 \\E[0;1m p7 不可視 \\E[0;8m p8 保護 使われていません p9 別の文字セット ^O (オフ) ^N (オン) .TE .PP 各モードが動作中かどうかを素早く決める方法がないので、 エスケープシーケンスを動作中のモードをすべてオフにするもので始めます。 強調は反転と太字の組合せでできています。 保護モードはホストの消去から画面の文字を保護するので、sgr では普通は 使われませんが、vt220 端末には保護モードがあります。 別の文字セットモードは、オフかオンかによって ^O または ^N であるという点で 異なります。 全モードをオンにするシーケンスは \\E[0;1;4;5;7;8m^N です。 .PP いくつかのシーケンスは異なるモードに共通です。 例えば、;7 は、p1 か p3 が真であるとき、すなわち強調か反転モードがオンのときに 出力されます。 .PP 上のシーケンスを依存関係とあわせて余すところなく書くと次のようになります。 .PP .TS center; l c c l c c lw28 lw6 lw2 lw20. \fBシーケンス 出力される場合 terminfo への翻訳\fP \\E[0 常に \\E[0 ;1 p1 または p6 のとき %?%p1%p6%|%t;1%; ;4 p2 のとき %?%p2%|%t;4%; ;5 p4 のとき %?%p4%|%t;5%; ;7 p1 または p3 のとき %?%p1%p3%|%t;7%; ;8 p7 のとき %?%p7%|%t;8%; m 常に m ^N または ^O p9 が真なら ^N そうでなければ ^O %?%p9%t^N%e^O%; .TE .PP これをすべて一緒に sgr シーケンスに詰め込むと次のようになります。 .PP .nf sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%; %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;, .fi .PP sgr を設定したら、sgr0 も設定する必要があることを忘れないでください。 .PP 「魔法のクッキー (magic cookie)」 .RB ( xmc ) を持つ端末では、モード設定シーケンスを受信すると特殊な「クッキー」とでも 呼ぶべきゴミを画面に残します。この端末では、モード設定シーケンスは、 各文字に余分なビットを持たせるのではなく、表示アルゴリズムそのものに 影響を与えます。 HP 2621 などのような端末では、次の行へ移動したり、カーソルの位置指定を した際に強調モードから勝手に抜け出てしまいます。 強調モードを用いるプログラムは、強調モードでの移動が安全であることを示す .B msgr ケーパビリティの指定が無い場合には、カーソルを移動させたり改行文字を 送出する前に強調モードから脱出すべきです。 .PP エラー発生を無音で (ベルの代わりに) 通知するため、画面をフラッシュさせる 方法が提供されている端末の場合、それを \fBflash\fR で指定できます。これは カーソルを移動させてはなりません。 .PP カーソルが最下行にないときに通常の状態以上に見易くする (例えば、点滅しない 下線カーソルを、より見つけやすいブロックカーソルや点滅下線カーソルにする) 必要がある場合、そのシーケンスを .BR cvvis で指定してください。 カーソルを完全に見えないようにする方法がある場合、それを .BR civis で指定してください。 これらのモードの効果を打ち消すシーケンスとして、ケーパビリティ .BR cnorm を指定すべきです。 .PP たとえ重ね打ちでないとしても、(特殊なコードなしで) 下線文字を正しく 生成できる端末の場合、ケーパビリティ \fBul\fR を指定すべきです。 文字を別の文字に重ね打ちすると両方の文字が画面に残るなら、ケーパビリティ \fBos\fP を指定してください。 重ね打ちが空白文字で消去可能な場合、\fBeo\fR を指定してそのことを明らかに しておくべきです。 .PP .SS キーパッドとファンクションキー .PP キーを押すとコードを送出するキーパッドを持つ場合、 そのキーパッドに関する情報を指定することができます。 注意すべき点として、キーパッドが局所モードでしか動作しない端末 (例えば、シフト状態でない HP 2621 のキーがこれに該当します) を扱うことはできないことがあります。 送信状態か非送信状態かを設定できるキーパッドの場合、それらのためのコードを \fBsmkx\fR と \fBrmkx\fR とで指定することができます。 これらの指定がない場合、キーパッドは常に送信状態として扱われます。 左矢印、右矢印、上矢印、下矢印キー、home キーが送出するコードは、それぞれ \fBkcub1, kcuf1, kcuu1, kcud1, khome\fR で指定できます。 f0, f1, ..., f10 のようなファンクションキーがある場合、これらが送出する コードは \fBkf0, kf1, ..., kf10\fR で指定できます。 これらのキーが f0 から f10 までのデフォルトのラベル以外のラベルを持つ場合、 このラベルを \fBlf0, lf1, ..., lf10\fR で指定できます。 他の特殊キーが送出するコードは、以下のように指定できます。 .B kll (ホームダウン (home down))、 .B kbs (バックスペース (backspace))、 .B ktbc (全タブクリア (clear all tabs))、 .B kctab (この桁のタブストップをクリア)、 .B kclr (画面消去 (clear screen) キーまたは抹消 (erase) キー)、 .B kdch1 (文字削除 (delete character))、 .B kdl1 (行削除 (delete line))、 .B krmir (挿入モードから抜ける (exit insert mode))、 .B kel (行末までクリア)、 .B ked (画面の終りまでクリア)、 .B kich1 (文字挿入 (insert character) または挿入モードに入る (enter insert mode))、 .B kil1 (行挿入 (insert line))、 .B knp (次のページ (next page))、 .B kpp (前のページ (previous page))、 .B kind (前進スクロール (scroll forward) / 下降スクロール (scroll down))、 .B kri (後退スクロール (scroll backward) / 上昇スクロール (scroll up))、 .B khts (この桁にタブストップを設定)。 -更に、キーパッドが 4 つの矢印を含む 3 × 3 のキー配列を持つ場合、他の 5 つの +.\" ×がうまく表示されないので \[mu] 使用 +更に、キーパッドが 4 つの矢印を含む 3 \[mu] 3 のキー配列を持つ場合、他の 5 つの キーを .BR ka1 , .BR ka3 , .BR kb2 , .BR kc1 , .BR kc3 . で指定します。 -3 × 3 のカーソル移動キーパッドの効果が必要な場合、これらのキーが有用です。 +3 \[mu] 3 のカーソル移動キーパッドの効果が必要な場合、これらのキーが有用です。 .PP ファンクションキーにプログラムする文字列は、 .BR pfkey , .BR pfloc , .BR pfx で指定できます。 画面のラベルの文字列は \fBpln\fP で指定すべきです。 これらの文字列は、それぞれ 2 つの引数を取ります。 プログラム対象のファンクションキー番号 (0 から 10 まで) と、 そこにプログラムする文字列です。 この範囲外のファンクションキー番号を使うと未定義のキーに対してプログラムして しまうかもしれず、これは端末依存の動作となります。 これらのケーパビリティの違いは以下の通りです。 .B pfkey を指定すると、そのキーを押すことは、ユーザが指定した文字列をタイプするのと 同じことになります。 .B pfloc では、端末内部で局所的にその文字列が実行されることになります。 .B pfx では、その文字列がコンピュータに送出されることになります。 .PP ケーパビリティ \fBnlab\fP, \fBlw\fP, \fBlh\fP はプログラム可能な画面のラベルの 数、幅、高さを定義します。 ラベルをオン、オフするコマンドがあるなら、\fBsmln\fP と \fBrmln\fP に 指定してください。 変更が見えるのを確実にするために、通常 \fBsmln\fP は 1 つ以上の pln シーケンスの後で出力されます。 .PP .SS タブと初期化 .PP 端末がハードウェアタブを持つ場合、次のタブストップまでカーソルを進める コマンドを .B ht (通常は control I) で指定できます。 前のタブストップまで左方向に進める「後退タブ」コマンドは、 .BR cbt で指定できます。 端末が、タブが端末に送出されずにコンピュータ内部で空白に展開されるモードに なっている場合、プログラムは、たとえ .B ht や .B cbt が存在しても、それらを使用しないという約束になっています。これは、 ユーザがタブストップを正しく設定していない可能性があるためです。 電源投入時に、 .I n 個の空白ごとにハードウェアタブが初期化されている端末の場合、数値パラメータ .B it を指定します。これはタブとして設定される空白数を表します。 通常、これは .IR tset コマンドが、ハードウェアタブ展開を使用するモード設定と、タブストップ設定とを 行うかどうかを決定するために使用します。 タブストップ設定を不揮発性メモリに記憶できる端末の場合、terminfo での記述の 際に、タブストップは正しく設定されていることを想定して構いません。 .PP 他のケーパビリティとして、 .BR is1 , .BR is2 , .BR is3 があり、これらは端末を初期化する文字列を指定します。また、 .BR iprog があり、これは端末初期化用として実行するプログラムのパス名を指定します。 また、\fBif\fR があり、これは初期化文字列が長い場合、それを含むファイルの 名前を指定します。 これらの文字列により、terminfo の残りの記述と矛盾なく動作するモードに 端末が設定されることが求められます。 通常、ユーザがログインするたびに、 .IR tput プログラムの .I init オプションがこれらの文字列を端末に対して送出します。 送出は以下の順序で行われます。 プログラム .BR iprog を実行 ; .BR is1 を出力 ; .BR is2 を出力 ; .BR mgc , .BR smgl と .BR smgr でマージンを設定 ; .B tbc と .BR hts でタブを設定 ; ファイル .BR if を印字 ; 最後に .BR is3 を出力。 .PP 初期化のほとんどは .BR is2 で行われます。 共通のシーケンスを .B is2 に置き、特殊な場合を .B is1 と .BR is3 とに置くことで、文字列をそれぞれに複製して持たせなくても、 特殊な端末モードを設定することができます。 まったくわけのわからない状態から復帰するための、よりハード寄りの リセットを行うためのシーケンスの組も同様に、 .BR rs1 , .BR rs2 , .BR rf , .BR rs3 で指定することができます。これらは .B is2 と .BR if と良く似たシーケンスです。 端末がハマったときに使うプログラムである、 .IR reset がこれらのシーケンスを出力します。 コマンドを .BR rs1 , .BR rs2 , .BR rs3 , .B rf に置くのは、普通、そのコマンドが画面にユーザを混乱させる効果を産み出し、 かつ、ログインの際には必要ない場合に限ります。 例えば、vt100 を 80 桁モードに設定するコマンドは、普通なら .BR is2 に含めるはずですが、 このコマンドは画面に混乱させるゴミを作り出しますし、端末は既に 80 桁モードに なっているのが普通ですので、このコマンドを含める必要ありません。 .PP タブストップの設定、クリアを行うコマンドがある場合、それらを .B tbc (全タブストップのクリア) と .B hts (各行の現在桁にタブストップを設定) に指定できます。 タブ設定に関して、ここで説明したものより複雑なシーケンスが必要な場合、 そのシーケンスを .B is2 や .BR if に置いても構いません。 .SS 遅延とパディング .PP ハードコピー端末と (例えば、DEC VT100 を含む) 非常に古い CRT を含む、 多くの古くて遅い端末は XON/XOFF ハンドシェークも DTR ハンドシェークも サポートしません。特定のカーソルの移動とスクリーンの変更の後には、 パディング文字が必要かもしれません。 .PP 端末がフロー制御のための xon/xoff ハンドシェークを使用する場合 (すなわち、 入力バッファが一杯に近くなると、ホストに自動的に ^S を送り返す場合)、 .BR xon を指定してください。 このケーパビリティはパディングの送出を抑えます。実質的に速度に制限のない メモリマップト形式のコンソールデバイスに対しても指定できます。 ルーチンが相対的なコストに関してよりよい見積もりを立てることができるように、 この場合でもパディング情報を指定すべきです。しかし、実際はパディング文字は 送信されません。 .PP \fBpb\fR (パディングボーレート) を指定することで、ボーレートが \fBpb\fR の値より低い場合、パディングが抑えられます。 エントリにパディングボーレートがなければ、 パディングが送出されるかされないかは \fBxon\fR により完全に制御されます。 .PP ヌル (0) 文字以外のパディング文字を必要とする端末の場合、それを \fBpad\fR で指定できます。 .B pad 文字列の最初の文字のみが使用されます。 .PP .SS ステータス行 端末には、通常のソフトウェアでは使用されない (それゆえ、端末の \fBlines\fR ケーパビリティでは数に入らない) 余分な「ステータス行」を 持つものもあります。 .PP 最も簡単な場合には、ステータス行はカーソル位置の指定は可能ですが、 画面上のスクロール領域の一部ではないものです。 初期化のときに 23 行のスクロール領域のある 24 行の VT100 と同じように、 Heathkit H19 には、この種のステータス行があります。 この状況は \fBhs\fR ケーパビリティで指定します。 .PP ステータス行に入るには特別なシーケンスを必要とする端末もあります。 これはパラメータを 1 つとる文字列 \fBtsl\fR で表します。 これはカーソルをステータス行の与えられた 0 桁に移動します。 ケーパビリティ \fBfsl\fR で最後の \fBtsl\fR の前の主画面のカーソル位置に 戻る必要があります。そのために \fBtsl\fR と \fBfsl\fR の中に \fBsc\fR (save cursor) と \fBrc\fR (restore cursor) の文字列の値を含める 必要があるかもしれません。 .PP ステータス行は通常、端末の幅と同じ幅だと仮定されています。これが 本当でないのなら、そのことを数値ケーパビリティ \fBwsl\fR で指定できます。 .PP ステータス行を消去したり削除するコマンドは \fBdsl\fR で指定できます。 .PP ブール値ケーパビリティ \fBeslok\fR は、ステータス行内でエスケープシーケンスや タブ等が通常通り働くことを示します。 .PP \fBncurses\fR の実装はこれらのケーパビリティのどれもまだ利用していません。 これらが重要になったらここに記述します。 .PP .SS 線画 .PP 多くの端末には図を描くのに役に立つ別の文字セットがあります。 terminfo と \fBcurses\fR は VT100 でサポートされている図形文字と AT&T 4410v1 の文字のいくつかをサポートします。 この別の文字セットは \fBacsc\fR ケーパビリティで設定されます。 .PP .TS H center expand; c l l c c l l c lw28 lw6 lw2 lw20. .\".TH \fBGlyph ACS Ascii VT100\fR \fBName Name Default Name\fR UK pound sign ACS_STERLING f } arrow pointing down ACS_DARROW v . arrow pointing left ACS_LARROW < , arrow pointing right ACS_RARROW > + arrow pointing up ACS_UARROW ^ - board of squares ACS_BOARD # h bullet ACS_BULLET o ~ checker board (stipple) ACS_CKBOARD : a degree symbol ACS_DEGREE \e f diamond ACS_DIAMOND + ` greater-than-or-equal-to ACS_GEQUAL > z greek pi ACS_PI * { horizontal line ACS_HLINE - q lantern symbol ACS_LANTERN # i large plus or crossover ACS_PLUS + n less-than-or-equal-to ACS_LEQUAL < y lower left corner ACS_LLCORNER + m lower right corner ACS_LRCORNER + j not-equal ACS_NEQUAL ! | plus/minus ACS_PLMINUS # g scan line 1 ACS_S1 ~ o scan line 3 ACS_S3 - p scan line 7 ACS_S7 - r scan line 9 ACS_S9 \&_ s solid square block ACS_BLOCK # 0 tee pointing down ACS_TTEE + w tee pointing left ACS_RTEE + u tee pointing right ACS_LTEE + t tee pointing up ACS_BTEE + v upper left corner ACS_ULCORNER + l upper right corner ACS_URCORNER + k vertical line ACS_VLINE | x .TE .PP 新しいデバイスの図形セットを定義するのに一番よい方法は、この表のその端末用の コピーに列を追加し、対応する図形のところに (\fBsmacs\fR/\fBrmacs\fR スイッチの 間に送出される場合に) 送出される文字を与えることです。それから VT100 と その端末の文字を右から左に順に読み上げてください。 これが ACSC 文字列になります。 .PP .SS 色の扱い .PP ほとんどのカラー端末は `Tektronix 風' か `HP 風' のどちらかです。Tektronix 風 端末には、あらかじめ定義された N 色 (N は通常 8 です) の組があり、 文字セル毎に独立に前景色と背景色を設定して、N * N の色ペアにできます。 HP 風端末では、色ペアをそれぞれ別々に設定する必要があります (前景と背景は 独立には設定できません)。 2*M の異なった色からは M までの色ペアができます。ANSI-互換端末は Tektronix 風 です。 .PP いくつかの基本的な色に関するケーパビリティは色の扱い方とは独立です。数値 ケーパビリティ \fBcolors\fR と \fBpairs\fR には、同時に表示できる色または 色ペアの最大数を指定します。\fBop\fR (original pair) 文字列は前景色と背景色を 端末の規定値にリセットします。\fBoc\fR 文字列はすべての色または色ペアを 端末の規定値にリセットします。(多くの PC 端末エミュレータを含む) いくつかの端末では、電源投入時の背景色ではなく、現在の背景色で 画面領域を消去します。この場合にはブール値ケーパビリティ \fBbce\fR を 指定すべきです。 .PP Tektronix 型の端末で現在の前景色と背景色を変えるためには、 \fBsetaf\fR (set ANSI foreground) と \fBsetab\fR (set ANSI background) を 使うか、\fBsetf\fR (set foreground) と \fBsetb\fR (set background) を 使ってください。 これらは 1 つのパラメータ、色番号をとります。SVr4 の文書には \fBsetaf\fR/\fBsetab\fR だけが書かれています。XPG4 の草案には、 「端末が背景と前景を設定する ANSI エスケープシーケンスをサポートするなら、 それぞれ \fBsetaf\fR と \fBsetab\fR で指定すべきです。 端末が背景と前景を設定する別のエスケープシーケンスをサポートするなら、 それぞれ \fBsetf\fR と \fBsetb\fR で指定すべきです。\fIvidputs()\fR 関数と refresh 関数 は、定義されていれば \fBsetaf\fR と \fBsetab\fR を 使います。」と書かれています。 .PP \fBsetaf\fR/\fBsetab\fR と \fBsetf\fR/\fBsetb\fR ケーパビリティはそれぞれ 数値引数を 1 つとります。引数値 0-7 は移植できるよう以下のように定義されて います (中央の列は \fBcurses\fR や \fBncurses\fR ライブラリ用にヘッダで 利用できる記号の #define です)。端末のハードウェアはこれを好きなように マップするのは自由ですが、RGB 値は色空間での通常の位置を示しています。 .PP .TS H center; l c c c l l n l. \fB色 #define 値 RGB\fR 黒 \fBCOLOR_BLACK\fR 0 0, 0, 0 赤 \fBCOLOR_RED\ \fR 1 max,0,0 緑 \fBCOLOR_GREEN\fR 2 0,max,0 黄 \fBCOLOR_YELLOW\fR 3 max,max,0 青 \fBCOLOR_BLUE\fR 4 0,0,max マゼンタ \fBCOLOR_MAGENTA\fR 5 max,0,max シアン \fBCOLOR_CYAN\fR 6 0,max,max 白 \fBCOLOR_WHITE\fR 7 max,max,max .TE .PP HP 風の端末では、どの色ペアが現在のものかを設定する色ペア番号パラメータを ともなった \fBscp\fR を使ってください。 .PP Tektronix 風の端末では、色が変更できることを示すためにケーパビリティ \fBccc\fR があります。もしそうであれば、 \fBinitc\fR ケーパビリティは色数 (0 から \fBcolors\fR - 1) と 色を記述する 3 つのパラメータをとります。この 3 つのパラメータは、デフォルトでは RGB (Red, Green, Blue) 値と解釈されます。ブール値ケーパビリティ \fBhls\fR が あれば、代わりに HLS (Hue, Lightness, Saturation) 指標になります。 範囲は端末に依存します。 .PP HP 風の端末では、\fBinitp\fR が色ペア値を変更するケーパビリティを与えます。 パラメータを 7 つとります。色ペア番号 (0 から \fBmax_pairs\fR - 1 まで) と 3 つの数の組が 2 つです。最初の組で背景色を、2 番目の組で前景色を記述します。 これらのパラメータは \fBhls\fR に依存して (Red, Green, Blue) か (Hue, Lightness, Saturation) である必要があります。 .PP カラー端末のいくつかでは、色はハイライトと衝突します。 この衝突を \fBncv\fR ケーパビリティで登録できます。 これは、色が利用可能なときに使うことができない属性のビットマスクです。 \fBcurses\fR が理解する属性との対応は以下の通りです。 .PP .TS center; l c c lw25 lw2 lw10. \fB属性 ビット 10 進数\fR A_STANDOUT 0 1 A_UNDERLINE 1 2 A_REVERSE 2 4 A_BLINK 3 8 A_DIM 4 16 A_BOLD 5 32 A_INVIS 6 64 A_PROTECT 7 128 A_ALTCHARSET 8 256 .TE .PP 例えば、多くの IBM PC コンソールで、下線の属性は前景色、青と衝突してしまい、 カラーモードでは利用できません。これは、\fBncv\fR ケーパビリティに 2 を 指定すべきです。 .PP SVr4 curses は \fBncv\fR では何もしませんが、 ncurses はそれを認識してカラー用に出力を最適化します。 .PP .SS その他 ヌル (0) 文字以外のパディング文字を必要とする端末の場合、それを pad で 指定することができます。 pad 文字列の最初の文字のみが使用されます。 パディング文字を持たない端末の場合、npc を指定してください。 ncurses は termcap 互換の \fBPC\fR 変数を実装していることに注意してください。 アプリケーションはこの値をナル以外のものに設定するかもしれませんが、 ncurses は最初に \fBnpc\fR をテストし、端末にパディング文字がなければ napms を使います。 .PP 端末が半行だけ上下移動できる場合、それを .B hu (半行上へ) と .B hd (半行下へ) とで指定できます。 これは、主として、ハードコピー端末の上付き文字、下付き文字のために役に 立ちます。 ハードコピー端末が用紙を排出し次のページに行くこと (フォームフィード) が できる場合、それを .B ff (通常は control L) で指定します。 .PP (同じ文字を極めて多数回繰り返し送信する際の時間節約のため) 指定した文字を 指定した回数だけ繰り返すコマンドが存在する場合、パラメータ化文字列 .BR rep を用いてそれを指定することができます。 1 番目のパラメータは繰り返される文字で、2 番目のパラメータは繰り返し回数です。 ですから、tparm(repeat_char, 'x', 10) は `xxxxxxxxxx' と同じことです。 .PP \s-1TEKTRONIX\s+1 4025 のように、コマンド文字を設定可能な端末の場合、 .BR cmdch を用いてそれを表すことができます。 すべてのケーパビリティで使用されるプロトタイプコマンド文字を指定できます。 この文字は .B cmdch ケーパビリティで指定され、それが識別されます。 いくつかの UNIX システムでは以下の約束にしたがって処理がなされます。 すなわち、まず環境変数 .B CC を検査し、それが設定されている場合は、ケーパビリティ中にあるプロトタイプ 文字のすべてがその環境変数で指定された文字と置き換えられます。 .PP .IR switch , .IR dialup , .IR patch , .IR network などのような、特定の端末の種類を表さない端末記述には、プログラムが その端末とどう通信すればよいかが分からないと表明できるようにするため、 .B gn (一般的) ケーパビリティを指定すべきです。 (このケーパビリティは、エスケープシーケンスがわかっている .I 仮想 端末の記述には適用されません。) .PP 端末が、シフトキーとして動作し、文字すべての 8 ビット目を立てて送出する 「メタキー」を持つ場合、このことを .BR km により表すことができます。 この指定がない場合、ソフトウェアは、8 ビット目はパリティで、通常は クリアされていると想定します。 この「メタモード」をオンオフする文字列が存在する場合、それを .B smm と .BR rmm とで指定できます。 .PP 端末が画面 1 枚分より多い行数のメモリを持つ場合、メモリの行数を .BR lm で指定できます。 値 .BR lm #0 は、行数は固定でないものの、1 画面分以上のメモリを持つことを表します。 .PP 端末が \s-1UNIX\s+1 の仮想端末プロトコルをサポートしている場合、 その端末番号を .BR vt で指定できます。 .PP 端末に接続された外部プリンタを制御するメディアコピー文字列は、次のように 指定できます。すなわち、 .BR mc0 : 画面内容の印字、 .BR mc4 : プリンタオフ、 .BR mc5 : プリンタオンです。 プリンタがオンのとき、端末に送出されたテキストはすべてプリンタに送られます。 プリンタがオンの状態でもなお端末にテキストが表示されるか否かは未定義です。 変種である .B mc5p はパラメータを 1 つ取り、そのパラメータの値だけの文字を送る間プリンタを オンにし続け、そのあとオフにします。 このパラメータは 255 を越えてはなりません。 .BR mc4 を含むすべてのテキストは、 .B mc5p が有効な間、透過的にプリンタに渡されます。 .PP .SS ゴミ機能、困った機能 (Glitches and Braindamage) .PP Hazeltine 端末は `~' 文字を表示できません。これには \fBhz\fR を指定すべきです。 .PP Concept や vt100 のように \fBam\fR 直後の改行文字を無視する端末の場合、 \fBxenl\fR を指定すべきです。 .PP 強調表示を取り除くために (単に通常のテキストを上に書くだけでは済まず) .B el が必要な場合、 \fBxhp\fP を指定すべきです。 .PP Teleray 端末は、タブでカーソル移動した下にあった文字をすべて空白にして しまうので、この端末では \fBxt\fR (破壊的なタブ) を指定すべきです。 注 : これに対応する変数は、現在は `dest_tabs_magic_smso' ですが、 以前のバージョンでは、teleray_glitch でした。 このふざけた機能は、``magic cookie''(魔法のクッキー) の 先頭にカーソルを置けないことと、 強調モードを消去するために、行削除と行挿入が必要であることも意味します。 ncurses の実装はこの glitch を無視します。 .PP Beehive の Superbee 端末は、エスケープ文字や control C 文字を正しく 送信できません。これには .BR xsb を指定し、f1 キーをエスケープとし、f2 キーを control C として使用することを 表します。 (この問題が現れるのは特定の Superbee に限られ、その ROM に依存します。) terminfo の古いバージョンでは、このケーパビリティは `beehive_glitch' と 呼ばれていましたが、現在では `no_esc_ctl_c' と呼ばれていることに 注意してください。 .PP なにか特定の端末に固有の他の問題を解決したい場合、\fBx\fR\fIx\fR の形式で 新しいケーパビリティを追加して使っても構いません。 .PP .SS よく似た端末 .PP 2 つの非常によく似た端末がある場合、いくつかの例外を除いて 一方 (変型種) は他方 (基本種) と似ているという定義を行うことができます。 変型種の定義においては、 文字列ケーパビリティ \fBuse\fR で、基本種の端末の名前を 指定できます。 .B use の指定より前に与えたケーパビリティは、 .BR use により得られる基本タイプの中のケーパビリティに優先します。 複数の \fBuse\fR ケーパビリティが存在する場合、逆の順番でマージされます。 すなわち、一番右側の \fBuse\fR の参照先が最初に処理され、 次にその左が処理されるといった順番になります。 エントリ中で明示的に指定されたケーパビリティは、 \fBuse\fR の参照先が与えるケーパビリティに優先します。 .PP ケーパビリティ定義の左側に \fBxx@\fR を置くことにより、そのケーパビリティを キャンセルできます。ここで xx はそのケーパビリティです。 例えば、エントリ .PP 2621-nl, smkx@, rmkx@, use=2621, .PP は \fBsmkx\fR も \fBrmkx\fR も持たない 2621-nl を定義します。 それゆえ、この端末はビジュアルモードでは ファンクションキーラベルをオンにしません。 この機能はある端末の種々の機能や、ユーザの種々の設定を表す際に有用です。 .PP .SS 長いエントリの落とし穴 .PP 長い terminfo のエントリは問題になりそうにありません。現在まで terminfo の 文字列表の最大値 4K に達したエントリはないのです。不幸なことに termcap への 翻訳はずっと厳しく制限されている (1K まで) ので、長い terminfo エントリの termcap への翻訳は問題を引き起こすかも知れません。 .PP 4.3BSD および、より古いバージョンの tgetent() のマニュアルには、 termcap エントリ用に 1K のバッファを割り当てるように書いてあります。 エントリは termcap ライブラリによりヌル文字で終了させられるので、 termcap エントリとして安全な最大の長さは 1k-1 (1023) バイトです。 アプリケーションと使用する termcap ライブラリが何をするか、 また、tgetent() が探しているタイプの端末が termcap ファイルの どこにあるかによって、悪いことがいくつか起こるかも知れません。 .PP termcap ライブラリの中には、1023 バイトより長いエントリを見つけると 警告のメッセージを表示したり、終了したりするものもありますし、 そうでないものもあります。そうでないものはエントリを切捨てて 1023 バイトに してしまいます。アプリケーションプログラムの中には termcap エントリに 推奨された 1K より多く割り当てるものもありますし、そうでないものもあります。 .PP 各 termcap エントリにはそれに関係する重要な大きさが 2 つあります。 "tc" 展開前と "tc" 展開後です。"tc" は、現在のエントリの最後に 他の termcap エントリを付け足し、そのケーパビリティを追加する ケーパビリティです。termcap エントリが "tc" ケーパビリティを 使わないならば、もちろん 2 つの長さは同じです。 .PP 特殊な端末のユーザ以外にも影響するので、「tc 展開前」の長さは最も 重要なものです。これは /etc/termcap にあるエントリからバックスラッシュと 改行の組を引いたものの長さです。バックスラッシュと改行の組は tgetent() が 読み込む間に取り除きます。 termcap ライブラリの中には最後の改行を取り除くものもあります (GNU termcap は行いません)。 次のように仮定します。 .TP 5 * 展開前の termcap エントリは 1023 バイト以上の長さです。 .TP 5 * アプリケーションは 1k のバッファを割り当てただけです。 .TP 5 * (BSD/OS 1.1 や GNU のもののように) termcap ライブラリは、 それが必要なエントリであれば、その長さに関わらず、 読むためにエントリをすべてバッファに読み込みます。 .TP 5 * tgetent() は長いエントリの端末タイプか、長いエントリの後に termcap ファイルに 現れる端末タイプか、ファイルには全く現れない (そのため tgetent() は termcap ファイル全体を探す必要があります) 端末タイプを探しています。 .PP すると、tgetent() はメモリ、おそらくはスタックに重ね書きし、たぶんプログラムを コアダンプさせるでしょう。telnet のようなプログラムは特に弱いです。 現代的な telnet は端末タイプのような値を自動的に通してしまいます。 SunOS 4.1.3 や Ultrix 4.4 のように、過度に長い termcap エントリを 読んだときには警告メッセージを表示する termcap ライブラリでも、結果は 望ましいものではありません。OSF/1 3.0 のように termcap ライブラリが 長いエントリを切り捨てるなら、ここで死ぬことはありませんが、 端末に対して不正確なデータを返すことになるでしょう。 .PP 「tc 展開後」の長さは上と同じように影響するでしょうが、 影響を受けるのは TERM をその端末タイプに実際に設定した人だけです。 tgetent() は探している時ではなく、探していた端末タイプを見つけた時に 一度だけ "tc" 展開を行うからです。 .PP 結局、1023 バイトより長い termcap エントリ は、termcap ライブラリと アプリケーションのさまざまな組合せで、コアダンプや警告や不正確な操作を 引き起こすかもしれません。"tc" 展開前でも長過ぎるなら、他の端末タイプの ユーザや termcap エントリのない TERM 変数を指定しているユーザにも 影響するでしょう。 .PP -C (termcap へ翻訳) モードでは、\fBtic\fR(1) の \fBncurses\fR の 実装は tc 前の termcap へ翻訳する長さが長過ぎる場合、警告メッセージを出します。 -c (check) オプションは、分析された (tc 展開後の) 長さもチェックします。 .SS バイナリ互換性 商用の UNIX の間のバイナリの terminfo エントリの移植性に期待するのは 賢明ではありません。問題は terminfo に (HP-UX と AIX で) 少なくとも 2 つの バージョンがあるからです。どちらも SVr1 の後で System V の terminfo から 分岐したもので、文字列表に System V や XSI Curses 拡張と (バイナリフォーマットで) 衝突する拡張ケーパビリティを追加しています。 .SH 拡張 SVr4 の \fBcurses\fR の実装のいくつかと SVr4 以前のものすべては パラメータ文字列内の %A 演算子と %O 演算子を解釈しません。 .PP SVr4/XPG4 は、別の文字セットモードで \fBmsgr\fR がカーソルの移動を許可するか どうかを指定しません (そのようなモードは、数ある中でも CR と NL を 局所的な移動を引き起こさない文字に写してしまうかも知れません)。 \fBncurses\fR の実装は \fBALTCHARSET\fR モードでは \fBmsgr\fR を無視します。 このため、反対の解釈をする XPG4 の実装では、\fBncurses\fR 用に作られた terminfo エントリの \fBmsgr\fR をオフにする必要があるかも知れません。 .PP \fBncurses\fR ライブラリは、更新の効率を上げるために少し非標準的な方法で 文字挿入と文字挿入モードを扱います。上記の \fB文字の挿入/削除\fR の副節を 参照してください。 .PP \fBset_clock\fR と \fBdisplay_clock\fR のパラメータ置換は SVr4 でも XSI Curses 規格でも説明されていません。AT&T 505 端末の説明書から 推測したものです。 .PP \fBkmous\fR ケーパビリティの割り当てには注意してください。\fBncurses\fR は \fBKEY_MOUSE\fR として解釈しようとし、xterm のような キーボード入力ストリーム中でマウストラック情報を返すことのできる端末や エミュレータが使用します。 .PP 異なる商用の terminfo と curses はそれぞれ異なる XSI Curses 標準の一部と (いくつかの場合) 異なった拡張をサポートします。以下は 1995 年 10 月時点での正確な要約です。 .PP \fBSVR4, Solaris, ncurses\fR -- SVr4 ケーパビリティをすべてサポートします。 .PP \fBSGI\fR -- SVr4 すべてと説明のない拡張文字列ケーパビリティ 1 つ (\fBset_pglen\fR) を サポートします。 .PP \fBSVr1, Ultrix\fR -- terminfo ケーパビリティの制限された一部をサポートします。 ブール値は \fBxon_xoff\fR で、数値は \fBwidth_status_line\fR で、 文字列は \fBprtr_non\fR で終わりです。 .PP \fBHP/UX\fR -- SVr1 の一部と、SVr[234] の数値 \fBnum_labels\fR, \fBlabel_height\fR, \fBlabel_width\fR と、ファンクションキー 11 から 63 までと、 \fBplab_norm\fR, \fBlabel_on\fR, \fBlabel_off\fR と、文字列表の非互換な拡張を いくつかサポートします。 .PP \fBAIX\fR -- SVr1 の一部と、ファンクションキー 11 から 63 までと、たくさんの 非互換な文字列表拡張をサポートします。 .PP \fBOSF\fR -- SVr4 全部と AIX 拡張の両方をサポートします。 .SH 関連ファイル .TP 25 \*d/?/* 端末記述を含むファイル .SH 関連項目 \fBtic\fR(1M), \fBcurses\fR(3X), \fBprintf\fR(3S), \fBterm\fR(\*n). .SH 作者 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Pavel Curtis による pcurses に基づいています。 .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: diff --git a/ja_JP.eucJP/man/man8/mount_nfs.8 b/ja_JP.eucJP/man/man8/mount_nfs.8 index 57d87680e4..1516338e64 100644 --- a/ja_JP.eucJP/man/man8/mount_nfs.8 +++ b/ja_JP.eucJP/man/man8/mount_nfs.8 @@ -1,342 +1,344 @@ .\" Copyright (c) 1992, 1993, 1994, 1995 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mount_nfs.8 8.3 (Berkeley) 3/29/95 .\" .\" %FreeBSD: src/sbin/mount_nfs/mount_nfs.8,v 1.37 2003/03/25 01:25:30 mdodd Exp % .\" .\" $FreeBSD$ .\"" .Dd March 29, 1995 .Dt MOUNT_NFS 8 .Os .Sh 名称 .Nm mount_nfs .Nd NFS (ネットワークファイルシステム) をマウントする .Sh 書式 .Nm .Op Fl 23NPTUbcdiLls .Op Fl D Ar deadthresh .Op Fl I Ar readdirsize .Op Fl R Ar retrycnt .Op Fl a Ar maxreadahead .Op Fl g Ar maxgroups .Op Fl o Ar options .Op Fl r Ar readsize .Op Fl t Ar timeout .Op Fl w Ar writesize .Op Fl x Ar retrans .Ar rhost : Ns Ar path node .Sh 解説 .Nm ユーティリティは、ファイルシステムツリー上の指定された .Ar node にリモートの NFS ファイルシステム .Pq Ar rhost : Ns Ar path をマウントするために、 .Xr mount 2 システムコールを呼び出します。このコマンドは通常、 .Xr mount 8 によって実行されます。このプログラムは、RFC 1094 の Appendix. A および .%T "NFS: Network File System Version 3 Protocol Specification" , Appendix I. に記述されているマウントプロトコルを実装しています。 .Pp デフォルトでは、マウントが成功するまで、 .Nm はリトライを続けます。 この動作は、 .Xr fstab 5 に列挙された、ブート処理に必須なファイルシステムでの使用を意図しています。 必須ではないファイルシステムには、 .Fl b および .Fl R のフラグを使用して、 サーバが利用不可の場合でもブート処理がハングしないようにできます。 .Pp NFS ファイルシステムのマウント中にサーバが応答しなくなった場合、 当該ファイルシステム上の新規または未解決のファイル処理は、 サーバが回復するまで、割り込まれることなくハングします。 このデフォルトの動作を修正するには、 .Fl i と .Fl s のフラグを見てください。 .Pp オプションを以下に示します: .Bl -tag -width indent .It Fl 2 NFS バージョン 2 プロトコルを使用します (デフォルトはバージョン 3 をまず試した後にバージョン 2 を用います)。 NFS バージョン 2 では、 ファイルサイズは 2 ギガバイトに制限されることに注意してください。 .It Fl 3 NFS バージョン 3 プロトコルを使用します。 .It Fl D NQNFSにおいて .Dq "停止サーバ閾 (dead server threshold)" をタイムアウト (round trip timeout) 回数で指定します。 これを越えると .Dq "server not responding" メッセージが表示されます。 .It Fl I readdir での読み取りサイズを指定した値にします。 値は通常 DIRBLKSIZ の倍数であり、マウントの読み取りサイズ以下です。 .It Fl L .Xr fcntl 2 ロックをネットワーク転送しません。 すべてのロックはローカルとなり、 サーバおよび他の NFS クライアントには見えなくなります。 これにより .Xr rpcbind 8 サービスを実行する必要がなくなり、 .Xr rpc.statd 8 と .Xr rpc.lockd 8 のサーバをクライアント上で実行する必要がなくなります。 本オプションは最初のマウント実行時にのみ尊重され、 マウントオプション更新時には黙って無視されます。 .It Fl N 予約されたソケットポート番号を使用し .Em ません (後述)。 .It Fl P 予約されたソケットポート番号を使います。 このフラグは廃れたものであり、互換性のためだけにあります。 現在、予約されたソケットポート番号をデフォルトで使用します。 NFS がより安全になるとの考え方 (これは誤りです) に基づいて クライアントが予約ポートを使用しないとマウントさせないサーバ をマウントするのに役立ちます。 (クライアントの root が信頼でき、ネットワークケーブルも安全な場所にあ るが、クライアントのユーザは信頼できないという、まれな場合には 役に立つでしょうが、通常のデスクトップクライアントには当てはまりません。) .It Fl R マウントのリトライ回数を、指定された値にします。 デフォルトのリトライ数は 0 であり、 これは永遠にリトライを続けることを意味します。 各リトライの間隔は 60 秒です。 .It Fl T UDP の代わりに TCP を使います。これは、サーバがクライアントと 同じ LAN ケーブル上にない場合に使うことをお勧めします (注意: この機能は大抵の非 .Bx サーバではサポートされていません)。 .It Fl U TCP NFS マウントであっても、マウントプロトコルに UDP を強制します。 (古い BSD サーバにて必要です。) .It Fl a 先読みブロック数を指定した値に設定します。値は 0 から 4 までの範囲で、 サイズの大きなファイルをシーケンシャルに読む場合、 何ブロック先読みするかを決定します。 -帯域幅×遅延が大きな状況でマウントする場合に 1 より大きな値をお勧めします。 +.\" ×がうまく表示されないので \[mu] 使用 +帯域幅 \[mu] 遅延が大きな状況でマウントする場合に +1 より大きな値をお勧めします。 .It Fl b 最初にサーバの接続に失敗した場合、子プロセスを起動して、 バックグラウンドでマウントを続けようとします。 マルチユーザモードで起動する際、重要でないファイルシステムを .Xr fstab 5 に書いておく場合に役に立ちます。 .It Fl c .Tn UDP マウントポイントに対しては、 .Xr connect 2 を使いません。 これは、標準のポート番号 2049 からのリクエストに答えないサーバや 別の IP アドレスからリクエストに答えるサーバ (サーバがマルチホームの場合に発生し得ます) .Va vfs.nfs.nfs_ip_paranoia sysctl を 0 に設定すると、本オプションがデフォルトになります。 に対しては使う必要があります。 .It Fl d 再送タイムアウト時間を動的に予測しません。これは、 動的に予測される再送タイムアウト時間が非常に短いために、 UDP マウントが高いリトライレートを示しているような場合に有効です。 .It Fl g 認証用のグループリストの最大サイズを、指定した値に設定します。 RFC 1057 ではグループリストのサイズは 16 と記述されていますが、これを 扱えない古いサーバをマウントするときに使うべきです。 多くのグループに属しているユーザに対してマウントポイントから 応答がない場合は、8 を指定してみて下さい。 .It Fl i マウントを割り込み可能とします。これは、応答しないサーバがあるために ファイル関連のシステムコールが遅れるような場合、 プロセスに終了シグナルが送られると、EINTR で システムコールが失敗することを意味します。 .It Fl l NQNFS と NFSV3 において、\fBReaddir_and_Lookup\fR RPCを使うことを 指定します。 このオプションは .Dq "ls -l" するようなときに RPC のトラフィックを減らしますが、 属性と名前のキャッシュをプリフェッチエントリで溢れさせる傾向があります。 このオプションを指定して性能が良くなるのか悪くなるのかを確認して下さい。 バンド幅と遅延の積が大きなネットワークにて最も有用でしょう。 .It Fl o .Fl o フラグの後に、オプションをコンマで区切って並べ指定します。 指定可能なオプションとその意味は .Xr mount 8 を参照してください。 以下の NFS 固有のオプションを使用可能です: .Bl -tag -width indent .It port= 指定したポート番号を NFS 要求に使用します。 デフォルトでは portmapper に問い合わせます。 .It acregmin= .It acregmax= .It acdirmin= .It acdirmax= ファイル属性がキャッシュされたときに、 キャッシュエントリをエクスパイアするためにタイムアウトを計算します。 これらの 4 つの値は、``ディレクトリ'' および ``通常'' (ディレクトリ以外) の 上限および下限を決定します。 デフォルトでは、 通常ファイルは 3 から 60 秒、 ディレクトリは 30 から 60 秒です。 タイムアウトの算出アルゴリズムはファイルの古さを元にするものです。 ファイルが古くなると、キャッシュが有効であると見倣す期間も長くなり、 上記限界に近付きます。 .It noinet4 .It noinet6 AF_INET や AF_INET6 の接続を無効化します。 同じ名前で A レコードと AAAA レコードを持つホストにおいて有用です。 .El .Pp .Bl -tag -width "dumbtimerXX" \fB歴史的な \&-o オプション\fR .Pp これらのオプションを使用する事は勧められません。 歴史的な .Nm との互換性のためにここに記述してあります。 .It bg .Fl b と同じ。 .It conn .Fl c を指定しない場合と同じ。 .It dumbtimer .Fl d と同じ。 .It intr .Fl i と同じ。 .It lockd .Fl L を指定しない場合と同じ。 .It nfsv2 .Fl 2 と同じ。 .It nfsv3 .Fl 3 と同じ。 .It rdirplus .Fl l と同じ。 .It mntudp .Fl U と同じ。 .It resvport .Fl P と同じ。 .It seqpacket .Fl p と同じ。 .It soft .Fl s と同じ。 .It tcp .Fl T と同じ。 .El .It Fl r データのリードサイズを指定した値にします。この値は通常 1024 以上の 2 のべき乗でなければなりません。これはマウントポイント を頻繁に使っている間に、 .Dq タイムアウトで消失したフラグメント数 が大きくなっていくときに、UDP マウントに対して使います .Pf ( Xr netstat 1 を .Fl s オプション付きで使う ことで、 .Dq タイムアウトで消失したフラグメント数 の値を見ることができます)。 .Fl w オプションも参照 してください。 .It Fl s ソフトマウントを行います。これは、 タイムアウトが決められた\fBリトライ\fR回数に達すると、 システムコールが失敗することを意味します。 .It Fl t 指定した値に初期再送タイムアウト時間を設定します。パケット の消失レートの高いネットワークや負荷の高いサーバで行う UDP マウントを チューニングするときに役立ちます。 ファイルシステムがアクティブなときに .Xr nfsstat 1 が高い再送レートを示す場合には、この値を増やしてみて下さい。 一方、再送レートは低いが、応答遅延が長い場合はこの値を減らします。 (通常、-d オプションをこのオプションとともに使い、 手動でタイムアウトインターバルを調整します。) .It Fl w 指定した値にライトデータサイズを設定します。解説は .Fl r オプションと同様ですが、 .Dq タイムアウトで消失したフラグメント数 は、クライアントのかわりにサーバの値を使います。 .Fl r や .Fl w のオプションは、マウントするサーバが TCP マウントをサポートしていない場合にパフォーマンスを向上させる 最後の手段であることに注意してください。 .It Fl x ソフトマウントの再送タイムアウト回数を設定します。 .El .Sh 関連項目 .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr mount 8 , .Xr nfsd 8 , .Xr nfsiod 8 , .Xr showmount 8 .Sh バグ Sun RPCは UDP (信頼性のないデータグラム) トランスポート層上に 実装されているため、マウントの性能をチューニングしても 限界があります。サーバが同じ LAN ケーブル上にない場合や、 サーバの負荷が高い場合には、 .Tn TCP トランスポートを使うことを強くすすめますが、 残念なことに、ほぼ .Bx 4.4 サーバに限られています。 diff --git a/ja_JP.eucJP/man/man8/ntpdate.8 b/ja_JP.eucJP/man/man8/ntpdate.8 index ce3698958a..b2c6c3a92a 100644 --- a/ja_JP.eucJP/man/man8/ntpdate.8 +++ b/ja_JP.eucJP/man/man8/ntpdate.8 @@ -1,234 +1,235 @@ .\" .\" %FreeBSD: src/usr.sbin/ntp/doc/ntpdate.8,v 1.7 2002/11/27 15:25:07 ru Exp % .\" .\" $FreeBSD$ .Dd January 6, 2000 .\" WORD: key identifier 鍵の識別子 .\" WORD: key file 鍵ファイル .\" WORD: slew 微調整する (slue の過去・過去分詞形) .\" WORD: step 合わせる .\" WORD: clock 時計 .\" WORD: time 時刻 .\" WORD: seconds and fraction 秒数 (小数も可) .\" .Dd January 6, 2000 .Dt NTPDATE 8 .Os .Sh 名称 .Nm ntpdate .Nd NTP を介して日付と時刻を設定する .Sh 書式 .Nm .Op Fl bBdqosuv .Op Fl a Ar key .Op Fl e Ar authdelay .Op Fl k Ar keyfile .Op Fl o Ar version .Op Fl p Ar samples .Op Fl t Ar timeout .Ar server ... .Sh 解説 .Em 注意 : このプログラムの機能は、今では .Xr ntpd 8 プログラムの中で利用可能となっています。 .Xr ntpd 8 マニュアルページの .Fl q コマンドラインオプションの説明を参照して下さい。 適切な期間、喪に服した後で、 .Nm ユーティリティは本ディストリビューションから引退することになります。 .Pp .Nm ユーティリティは、正確な時刻を決めるために .Ar server 引数で与えられた ネットワークタイムプロトコル (Network Time Protocol; NTP) サーバ (複数可) を調べることによって、 ローカルな日付と時刻を設定します。 このコマンドは、ローカルホストの root として起動されなければなりません。 指定された各サーバからたくさんのサンプルを得て、 NTP 時計フィルタのサブセットと選択アルゴリズムを適用し、 その中から最良のものを選択します。 .Nm の正確さと信頼性は サーバの数、一実行あたりの調査数、そして実行間隔で決まることに 注意してください。 .Pp 以下のオプションが使用可能です: .Bl -tag -width indent .It Fl a Ar key 認証機能を有効にし、認証の鍵識別子を .Ar key 引数に指定します。 鍵と鍵の識別子はクライアントとサーバ双方の鍵ファイルで 合致する必要があります。 デフォルトでは認証機能は無効になっています。 .It Fl B -計測されたオフセットが± 128 ms より大きくても、 +.\" ±がうまくつかえないので \[+-] 使用 +計測されたオフセットが \[+-]128 ms より大きくても、 時刻を常に .Xr adjtime 2 システムコールを用いて微調整するよう、強制します。 -デフォルトではオフセットが± 128 ms より大きい場合は、 +デフォルトではオフセットが \[+-]128 ms より大きい場合は、 .Xr settimeofday 2 を用いてずらします。 -オフセットが± 128 ms より大きい場合は、 +オフセットが \[+-]128 ms より大きい場合は、 時計を正しい値に微調整で合わせるのに長い時間 (数時間) 掛かることがあることに 注意してください。 この間は、クライアントを同期するためにこのホストを使ってはいけません。 .It Fl b (デフォルトの) .Xr adjtime 2 システムコールを用いて時刻を微調整するのではなく、 .Xr settimeofday 2 システムコールを用いて時刻を合わせるよう、強制します。 このオプションはブート時に起動ファイルから呼び出すときには使用するべきです。 .It Fl d デバッグモードを有効にします。 .Nm は全てのステップを実行しますが、ローカル時計を合わせることはしません。 一般的なデバッグに役立つ情報も表示します。 .It Fl e Ar authdelay 認証機能の処理にかかる遅れを .Ar authdelay に値を秒数 (小数も可) で指定します (詳細は .Xr ntpd 8 を参照してください)。 この値は通常多くの用途では無視し得るほどわずかですが、 非常に遅い CPU ではこの数を指定することで、 時間の正確さが改善されるかもしれません。 .It Fl k Ar keyfile 認証鍵のファイルへのパスを文字列で .Ar keyfile に指定します。 デフォルトは .Pa /etc/ntp.keys です。 このファイルは .Xr ntpd 8 に記述されている形式で書く必要があります。 .It Fl o Ar version 外へ出すパケットの NTP バージョンを .Ar version に 1 か 2 の整数で指定します。 デフォルトは 3 です。 このオプションは .Nm を古いバージョンの NTP に対して使用できるようにします。 .It Fl p Ar samples 各サーバから得るサンプルの数を .Ar samples に 1 から 8 までの整数で指定します。 デフォルトは 4 です。 .It Fl q 問い合わせをするだけで、時計を設定しません。 .It Fl s (デフォルトの) 標準出力ではなく、 .Xr syslog 3 機能を使用してログ出力を行ないます。 この機能は主に .Xr cron 8 スクリプトでの利便性を考えて作られました。 .It Fl t Ar timeout サーバの応答を待つ最大時間を .Ar timeout に秒数 (小数も可) で指定します。 値は 0.2 秒の倍数に丸められます。 デフォルトは 1 秒で、これは LAN を通じて調べるのに適当な値です。 .It Fl u .Nm が外へ出すパケットを非特権ポートから出すように命令します。 この機能は、外から来た特権ポートへのトラフィックを ブロックするファイアウォールの内側にいる場合に、 ファイアウォールを越えた向こうのホストと同期する際に最も便利です。 .Fl d オプションは常に非特権ポートを使用することに注意してください。 .It Fl v 冗長になります。 このオプションは .Nm のバージョン識別文字列を記録するようになります。 .El .Pp .Nm ユーティリティは、必要に応じてホストの時計を合わせるために手動で動かしたり、 ブート時に時計を設定するために起動スクリプト の中から動かすことができます。 このことは NTP デーモン .Xr ntpd 8 を起動する前に時計を初期設定する場合に便利です。 .Nm は .Xr cron 8 スクリプトから起動することも可能です。 しかし、 .Nm を用いた .Xr cron 8 スクリプトを工夫しても、 最小限のリソース消費で最大の正確さと信頼性を得る 洗練されたアルゴリズムを用いる NTP デーモンの代わりにはならないことに 注意することが重要です。 最後に、 .Nm は .Xr ntpd 8 がするようなホストのクロック周波数の学習をしないので、 .Nm を用いることによる正確さは限定されます。 .Pp .Nm は 2 つの方法のうちの 1 つで時刻の調整を行います。 .Nm は、時計が 0.5 秒以上ずれていると判断すると、システムの .Xr settimeofday 2 ルーチンを呼ぶことで単に時刻を合わせ直します。 しかし、 誤差が 0.5 秒以内のときは、システムの .Xr adjtime 2 ルーチンを呼ぶことで、時刻を微調整します。 後者のテクニックは、誤差が小さいときには、より滑らかな上に正確であり、 .Nm を .Xr cron 8 で 1 〜 2 時間に一回動かすときには、かなりうまく働きます。 .Pp .Nm ユーティリティは同じホストで NTP サーバデーモン (例えば .Xr ntpd 8 ) が動いている場合は、日付の設定を拒否します。 デーモンを実行する代わりに .Xr cron 8 から定期的に .Nm を呼び出す場合は、 1 〜 2 時間に一回行なうと時計のずれを抑止するのに十分な 正確な時刻を保持できます。 .Pp .Nm が NetInfo サポートを含む形でコンパイルされていた場合、 .Nm が .Xr ntpd 8 用の NetInfo の設定から時刻サーバを見つけられる場合は .Ic server 引数はオプションとなります。 .Sh 関連ファイル .Bl -tag -width /etc/ntp.keys -compact .It Pa /etc/ntp.keys .Nm で使われる暗号化鍵を含みます。 .El .Sh 関連項目 .Xr ntpd 8 .Sh バグ 微調整による調整は、実際には、計測されたずれよりも 50% 大きくなります。 これは、ひどくフラフラする時計をより正確に保持するのに役立つからです (と主張されています)。 このことは良い考えではないかもしれず、カーネル変数 .Va kern.clockrate.tick と .Va kern.clockrate.tickadj の値をおかしくするかもしれません。