termcap(5) FreeBSD 一般コマンドマニュアル

termcap

前のページ 上に戻る 次のページ

termcap




解説

     termcap ファイルは端末に関するデータベースであり、例えば vi(1)ncurses(3) が使用します。 termcap には、端末が持つケーパビリティと、操作
     がどのように行われるのかが記述されています。パディングの必要性および初期
     化シーケンスも termcap に記述されています。

     termcap のエントリは `:' で区切られた複数個のフィールドからなります。各端
     末の最初のエントリは、`|' 文字で区切った端末名です。最初の名前は、その端
     末の最も一般的な省略形です。最後の名前は端末を完全に識別するための長い名
     前であり、その他は端末名の類義語です。最後以外の名前は小文字を使い、空白
     を含まないようにしてください; 最後の名前は、可読性のために大文字や空白を
     含んでかまいません。

     端末名 (最後の冗長なエントリを除く) は次の約束に従い選んでください。端末
     を構成するハードウェアの特定の一部を、 ``hp2621'' のように根幹の名前とし
     て選びます。この名前はハイフンを含んではなりません。ハードウェアのモード
     やユーザのプリファレンスは、ハイフンとモード指示子を追加して示します。で
     すから、132 桁モードの ``vt100'' は ``vt100-w'' になります。可能ならば、
     以下の接尾辞を使用してください:

           B>接B>尾B>辞    B>意B>味                                          B>例
           -w        広いモード (80 桁超)                          vt100-w
           -am       自動マージン付 (通常はデフォルト)             vt100-am
           -nam      自動マージン無し                              vt100-nam
           -n        画面上の行数                                  aaa-60
           -na       矢印キー無し (ローカルのままにする)           concept100-na
           -np       メモリページ数                                concept100-4p
           -rv       反転表示                                      concept100-rv


ケーパビリティ

     記述フィールドに、ケーパビリティの意味を示そうとしています。記述フィール
     ドには次のようなコードが書いてあることがあります:

     (P)     パディングが指定されるかもしれないことを表します。

     #[1-9]  記述フィールドでは、文字列が (#i) として与えられる引数として
             tparm や tgoto を介して渡されることを示します。

     (P*)    影響を受ける行数に従いパディングが変化することを示します。

     (#i)    i 番目のパラメータを表します。

     以下、ブール値のケーパビリティです:

     B>ブB>ーB>ルB>値                TCap    B>記B>述
     B>変B>数                    B>コB>ーB>ド
     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)
     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      行ピッチを変えると解像度が変わる

     以下、数値のケーパビリティです:

     B>数B>値                    TCap    B>記B>述
     B>変B>数                    B>コB>ーB>ド
     columns                 co      1 行の桁数
     init_tabs               it      タブの初期設定は # 個の空白ごと
     lines                   li      画面もしくはページの行数
     lines_of_memory         lm      行より大きい場合はメモリの行数、
                                     0 の場合はさまざま
     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 構造体に存在しますが、
     # マニュアルには記述されていません。
     output_res_vert_inch    Yl      インチあたりのユニット数による垂直解像度
     print_rate              Ym      1 秒あたりの文字数による印字レート
     wide_char_size          Yn      倍幅モードでの文字ステップサイズ
     buttons                 BT      マウスのボタン数
     bit_image_entwining     Yo      各ビットイメージ行として渡される数
     bit_image_type          Yp      ビットイメージデバイスのタイプ

     以下、文字列ケーパビリティです:

     B>文B>字B>列                  TCap    B>記B>述
     B>変B>数                    B>コB>ーB>ド
     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)
     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 が来たように振舞います)
                                     プログラムファンクションキー #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_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_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
     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      ソフトウェアビットを印字ヘッドピンに
                                     あわせる
     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      ビットイメージグラフィクスの印刷開始
     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      垂直ハイライトモードに入る


     以下は廃れた termcap ケーパビリティです。
     新しいソフトウェアはどれにも依存しないようにしてください。

     B>ブB>ーB>ルB>値                TCap    B>記B>述
     B>変B>数                    B>コB>ーB>ド
     B>変B>数                    B>コB>ーB>ド
     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 に必要なパディング

     B>文B>字B>列                  TCap    B>記B>述
     B>変B>数                    B>コB>ーB>ド
     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 でない場合に左に移動

   B>エB>ンB>トB>リB>のB>サB>ンB>プB>ル
     以下のエントリは Concept-100 について記述しており、
     本書の中でも最も複雑なエントリの 1 つです。

     ca|concept100|c100|concept|c104|concept100-4p|HDS Concept-100:\
             :al=3*\E^R:am:bl=^G:cd=16*\E^C:ce=16\E^U:cl=2*^L:cm=\Ea%+ %+ :\
             :co#80:.cr=9^M:db:dc=16\E^A:dl=3*\E^B:do=^J:ei=\E\200:eo:im=\E^P:in:\
             :ip=16*:is=\EU\Ef\E7\E5\E8\El\ENH\EK\E\200\Eo&\200\Eo\47\E:k1=\E5:\
             :k2=\E6:k3=\E7:kb=^h:kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:\
             :ku=\E;:le=^H:li#24:mb=\EC:me=\EN\200:mh=\EE:mi:mk=\EH:mp=\EI:\
             :mr=\ED:nd=\E=:pb#9600:rp=0.2*\Er%.%+ :se=\Ed\Ee:sf=^J:so=\EE\ED:\
             :.ta=8\t:te=\Ev    \200\200\200\200\200\200\Ep\r\n:\
             :ti=\EU\Ev  8p\Ep\r:ue=\Eg:ul:up=\E;:us=\EG:\
             :vb=\Ek\200\200\200\200\200\200\200\200\200\200\200\200\200\200\EK:\
             :ve=\Ew:vs=\EW:vt#8:xn:\
             :bs:cr=^M:dC#9:dT#8:nl=^J:ta=^I:pt:

     行末文字に \ を使用すれば、複数行にエントリを続けることができます。
     また空のフィールドを含めて可読性を上げることもできます
     (ある行の最後のフィールドから次の行の最初のフィールドまでです)。
     コメントは
     ``#''
     で始まる行に含めることができます。

   B>ケB>ーB>パB>ビB>リB>テB>ィB>のB>型
     termcap
     のケーパビリティには次の 3 種類があります:
     特定の機能を端末が持つかどうかを示す、ブール値ケーパビリテイ;
     画面の大きさや他の属性の大きさを与える、数値ケーパビリティ;
     そして特定の端末操作を行うために使用可能な文字列を与える、
     文字列ケーパビリティです。
     全てのケーバビリティが 2 文字のコードを持ちます。

     最後に、文字列値のケーパビリティ、例えば
     ce
     (行末までクリアのシーケンス) は、2 文字のコード、単一の `='、
     そして次の `:' までの文字列で与えられます。
     このケーパビリティにおいては、ミリ秒指定の遅延を `=' の後に指定可能です。
     この場合、残りの文字列が送られた後、パディング文字が
     tputs
     により与えられ、この遅延を発生させます。
     遅延は `20' のような数値または `3*' のような `*' が続く数値です。
     `*' は、
     この操作により影響を受ける行数に必要なパディングが比例すること、
     そして指定量は影響を受ける各行に必要なパディングであることを示します。
     (insert-character の場合でも、係数は影響を受ける
     行
     数です; ただし、端末が
     in
     を持っていてソフトウェアがこれを使用する場合以外は、この値は常に 1 です。)
     `*' が指定される時、`3.5' のような形式により 1/10 ミリ秒単位で
     行あたりの遅延を指定するのが便利な場合があります。
     (10 進数 1 桁分のみ許されます。)

     多くのエスケープシーケンスが文字列値のケーパビリティで提供されますので、
     ここでは容易に制御文字をエンコードできます。
     \E
     は
     ESC
     文字にマップし、
     ^X
     は適切な X に対して control-X にマップし、シーケンス
     \n
     \r
     \t
     \b
     \f
     はそれぞれ、ラインフィード、リターン、タブ、バックスペース、フォームフィード
     にマップします。
     最後に、文字は
     \
     の後に 3 桁 8 進数として指定可能ですし、
     ^\
     の文字は
     \^\\
     として与えられます。
     ケーパビリティ中に
     :
     を入れる必要がある場合、8 進数で
     \072
     個々のケーパビリティをコメントアウトする必要があるかもしれません。
     その場合には、ケーパビリティ名の前にピリオドを付けます。
     例えば、例における最初の
     crta
     を見てください。

   B>記B>述B>のB>準B>備
     端末記述を準備する最も効果的な方法は、
     termcap
     中の似た端末の記述を真似し、
     vi
     を使用して部分記述の正しさを確認することにより、
     徐々に記述を構築するというものです。
     非常に稀なことですが、端末によっては、
     termcap
     ファイルの記述能力不足や
     vi
     のバグが露呈することがありますので注意してください。
     あなたが新しく作った端末記述を簡単にテストするには、
     あなたのホームディレクトリに
     .termcap
     という名前のファイルとして置き、
     プログラムが
     /usr/share/misc/termcap
     の前にこれを見るようにします。
     環境変数
     TERMPATH
     をあなたが作成した記述を含む絶対ファイルパス名のリスト
     (空白もしくはコロンで区切ります) に設定することにより、
     プログラムはこれらをリスト順に検索し、他は検索しないようになります。
     termcap(3)
     を参照してください。
     TERMCAP
     環境変数は、通常
     termcap
     エントリ自身に設定され、プログラム起動時にファイルを読むことを避けます。

     行挿入に対する適切なパディングを得るためには
     (端末製造元が記述しなかった場合には)、
     vi
     を使用して
     /etc/passwd
     を 9600 ボーで編集し、およそ 16 行を画面中央から削除し、
     それから `u' キーを何度か素早く押すという、厳しいテストを行います。
     画面がぐちゃぐちゃになった場合には、
     通常はより多くのパディングが必要となります。
     同様のテストを文字挿入に対しても行うことが可能です。

   B>基B>本B>ケB>ーB>パB>ビB>リB>テB>ィ
     表示の各行の桁数は
     os
     ケーパビリティがあります。
     端末がプリント端末でソフトコピーユニットを持たない場合、
     hcos
     を指定してください。
     (os
     があてはまるのは Tektronix 4010 シリーズのようなストレージスコープ端末、
     ハードコピー端末、そして
     APL
     端末です。)
     カーソルを直ちに左端に移動するためのコードがある場合には、それを
     cr
     で指定します。
     (通常これは復帰文字(キャリッジリターン)、すなわち
     ^M
     です。)
     可聴シグナル (ベルやビープなど) を発生するコードがある場合には、それを
     bl
     で指定します。

     (バックスペースのように) カーソルを 1 つ左に移動するコードがある場合には、
     このケーパビリテイは
     le
     で指定します。
     同様に、右上下に移動するコードはそれぞれ
     nd,
     up,
     do
     で指定します。
     これらの
     ローカルなカーソル移動
     は、カーソルが通過する文字を変化させてはなりません;
     例えば、通常は
     ``nd= ''
     を使用してはなりません。例外は
     端末が
     os
     ケーパビリティを持つ場合です。
     この理由は、通過する文字を空白が消してしまうからです。

     ここで非常に重要なポイントは、
     termcap
     でエンコードされるローカルなカーソル移動は、
     CRT
     表示の左端および上端では動作が未定義だということです。
     ローカルなカーソル移動を使用している場合には、
     左端においては
     bw
     が与えられているのでなければ、
     プログラムはバックスペースを試してはなりませんし、
     SF
     および
     SR
     で、
     sf
     および
     sr
     と同様の意味ですが、
     1 つパラメータを取ってその行数だけスクロールさせるというところが違います。
     これらもまた、画面上の適切な角以外での動作は未定義です。

     am
     ケーパビリティは、画面の右端にてテキスト出力を行った時に、
     カーソルがその位置に留まるか否かを示します。
     しかしこれは、最後の桁での
     nd
     を必ずしも意味しません。
     左端らかの左向きのローカル移動は、
     bw
     が与えられている場合のみ定義されます;
     この場合、左端における
     le
     は、直前行の右端へ移動します。
     例えば、画面の周囲に箱を描画する場合に便利です。
     端末が切り替え選択式の自動マージンを持つ場合には、
     termcap
     記述は通常この機能、
     すなわち
     am
     がオンであることを仮定します。
     次行の先頭桁への移動コマンドを端末が持つ場合、このコマンドは
     nw
     (改行) で与えることができます。
     これを使用して現在の行の残りの部分をクリアすることができますので、
     正しく動作する
     CR
     および
     LF
     を持たない場合には、これらの代りに使用することができます。

     これらの機能で、ハードコピー端末および
     ``ガラスの tty''
     端末を記述するためには十分です。
     Teletype model 33 は以下のように記述されています

           T3|tty33|33|tty|Teletype model 33:\
                   :bl=^G:co#72:cr=^M:do=^J:hc:os:

     また Lear Siegler
     ADM-3
     は以下のように記述されています

     それぞれ移動先の行と桁です。
     (行と桁は 0 から番号が振られ、ユーザから見える物理画面を参照します。
     見えないメモリは参照しません。
     端末がメモリ相対のカーソル位置設定機能を持つ場合には、
     CM
     という似たケーパビリティで指定されます。)

     %
     エンコードは以下の意味を持ちます:

     %%       `%' を出力
     %d       値を printf %d のように出力
     %2       値を printf %2d のように出力
     %3       値を printf %3d のように出力
     %.       値を printf %c のように出力
     %+x      値に x を加え、% を実行
     %>xy     もし値 > x の場合には y を加える。無出力
     %r       2 つのパラメータの順を逆転。無出力
     %i       1 増加。無出力
     %n       全パラメータに関した 0140 との排他的論理和 (Datamedia 2500)
     %B       BCD (16*(value/10)) + (value%10) を実行。無出力
     %D       逆コーディング (value - 2*(value%16))。無出力 (Delta Data)

     Hewlett-Packard 2645 において第 3 行第 12 桁に移動する場合、
     ``\E&a12c03Y'' を送って 6 ミリ秒パディングする必要があります。行と桁の関
     係がここでは逆であり、行および桁は 2 桁の整数として送ることに注意してくだ
     さい。よって、この端末の cm ケーパビリティは ``cm=6\E&%r%2c%2Y'' となりま
     す。

     Datamedia 2500 は現在の行と桁を ``%.'' でバイナリエンコードして送る必要が
     あります。 ``%.'' を使用する端末は、カーソルをバックスペース (le) させる
     機能と画面上で 1 行カーソルを上に移動 (up) する機能を持つ必要があります。
     なぜなら \n, ^D, \r を送出するのは常に安全というわけではなく、システムが
     これらに変更を加えたり捨てたりする場合があるからです。( termcap を使用す
     るプログラムは、タブが展開されないように端末モードを設定し、 \t が安全に
     送られるようにしなければなりません。これは Ann Arbor 4080 において本質的
     です。)

     最後の例は Lear Siegler ADM-3a です。この端末では行と桁は空白文字で与えま
     すので、 ``cm=\E=%+ %+となります。''

     絶対値での行や桁のカーソル位置設定は、単一パラメータのケーパビリティ ch (
     水平絶対位置) および cv (垂直絶対位置) で与えられます。一般的な 2 パラメ
     ータシーケンスよりもこれらを使用する方が短かいことがあり (Hewlett-Packard
     2645 の場合)、 cm よりも好んで使用され得ます。パラメータ化されたローカル
     移動 (例えば、 n 個右に移動) の機能がある場合、 DO, LE, RI, UP として与え
     られます。これらは単一パラメータを取り、いくつ移動するのかを示します。第
     1 に Tektronix 4025 のような cm を持たない端末で有用です。

   B>カB>ーB>ソB>ルB>移B>動

     端末が高速にカーソルをホーム (画面の左上角) に移動する方法がある場合、こ

   B>行B>のB>挿B>入B>おB>よB>びB>削B>除
     端末が、カーソルがいる行の前に新しい空行を開けることが可能な場合、この機
     能は al として与えられます; この機能を起動するには行頭にいる必要がありま
     す。行を開けると、カーソルは新しい空行の左端に移動します。端末が、カーソ
     ルがいる行を削除可能な場合、この機能は dl として与えられます;この機能を
     起動するには削除する行の先頭にいる必要があります。 1 つパラメータを取って
     その数だけ行を挿入および削除する al および dl の変形は、 AL および DL と
     して与えられます。端末が、(VT100 のように) 設定可能なスクロール領域を持つ
     場合、設定コマンドは 2 つのパラメータを取る cs ケーパビリティとして記述さ
     れます: パラメータはスクロール領域の上端行および下端行です。なんとしたこ
     とか、このコマンド使用後のカーソル位置は未定義です。行挿入および行削除の
     効果はこのコマンドを使用することで得られます -- sc および rc (カーソルの
     保存と回復) コマンドもまた有用です。画面の上端または下端における行挿入
     は、真の行挿入/削除を持たない多くの端末において、 sr または sf にて実行で
     きます。また、真の行挿入/削除機能を持つ端末においても、こちらの方が高速な
     場合が多いです。

     メモリの一部を、全コマンドが影響するウィンドウとして定義する能力を端末が
     持つ場合、これはパラメータ化された文字列 wi で与えられます。 4 つのパラメ
     ータは順番に、メモリにおける開始行・終了行・開始桁・終了桁です。 (この
     terminfo(5) ケーパビリティは完全性のために記述しています。 termcap を使用
     するプログラムはこの機能を使ってはいないでしょう。)

     端末が画面より上方の表示メモリを保存する場合、 da ケーパビリティが与えら
     れます; 下方の表示メモリが保存される場合、 db が与えられます。これらの機
     能は、行削除やスクロールにより非空白行が下から現れることや、 sr による後
     退スクロールにより非空白行が上から現れることを示します。

   B>文B>字B>のB>挿B>入B>おB>よB>びB>削B>除
     termcap にて記述可能な文字挿入および削除に関しては、基本的に 2 種類のイン
     テリジェント端末があります。最も一般的な文字の挿入/削除操作は現在行の文字
     にのみ作用し、行末までの文字を厳格にシフトします。他の端末、Concept-100
     や Perkin Elmer Owl では、タイプされた空白とタイプされたものではない空白
     を区別し、挿入/削除に際するシフトは画面上のタイプされたものではない空白に
     のみ適用されます。タイプされたものではない空白は、削除されるか、 2 つのタ
     イプされたものではない空白に拡張されます。使用している端末の種類を判別す
     るためには、画面をクリアし、カーソル移動を含めてテキストをタイプします。
     例えば ``abc    def'' を、 ``abc'' と ``def'' の間でローカルなカーソル移
     動 (空白ではありません) を行ってタイプします。その後、カーソルを ``abc''
     の前に移動し、端末を挿入モードにします。そこで文字をタイプすると行の残り
     の部分が厳密にシフトされ終端から出て行く場合、あなたの端末は空白とタイプ
     されたものではない位置とを区別しません。もし挿入に際して、 ``abc'' が
     ``def'' のところまでシフトし、それから一緒に現在の行の終端まで移動して次
     行に移動する場合、あなたの端末は 2 番目の種類の端末を持っていますので、
     ``ナル挿入'' を表すケーパビリティ in を指定します。これら 2 つは論理的に
     別の属性 (1 行 対複数行の挿入モードでタイプされたものではない空白を特別に
     扱う) ですが、挿入モードをどちらかで記述できない端末を我々は見たことがあ
     りません。

     termcap エントリは、挿入モードを持つ端末も、単純なシーケンスを送って現在
     の行に空白位置を開ける端末も、両方記述可能です。 im は挿入モードに入るシ
     えば挿入位置の後にタブがある場合)。挿入モード中で移動を許す端末の場合、ケ
     ーパビリティ mi を指定して、このような場合の挿入を高速化できます。 mi を
     省略しても速度に影響するだけです。端末によっては (特に Datamedia のもので
     は)、挿入モードの動作方法の理由により、 mi を指定してはなりません。

     最後に、1 文字削除のために dc を指定可能です。 DC は単一パラメータ n を取
     り n 文字削除します。そして削除モードは、 dm および ed で、削除モードの入
     り方および抜け方を示します (削除モードとは、 dc が動作するために端末がい
     るべきモードです)。

   B>ハB>イB>ラB>イB>トB>・B>下B>線B>・B>可B>視B>ベB>ル
     端末が 1 つまたはそれ以上の種類の表示属性を持つ場合、これらは様々な方法で
     表現されていることでしょう。 1 つの表示形式を 強調表示モードとして選択し
     てください。このモードは十分高いコントラストで見易く、エラーメッセージや
     注意を引く表示のハイライトに適します。 (選択可能ならば、反転表示に半分の
     明るさ、もしくは反転表示のみが良いでしょう。) 強調表示モードに入るシーケ
     ンスおよび出るシーケンスは、それぞれ so および se で与えられます。 TVI
     912 や Teleray 1061 のように、強調表示モードの出入りのコードが、 1 つ 2
     つの空白やごみの文字を画面上に残す場合、 sg を指定して、何文字残されるの
     かを指定してください。

     下線の開始および下線の終了は、それぞれ us および ue で指定します。下線モ
     ード変更によるごみは、 sg 同様 ug として指定します。 Microterm Mime のよ
     うに、現在位置の文字に下線を引き、カーソルをひとつ右の位置に移動するコー
     ドを端末が持つ場合、このコードは uc で指定します。

     その他もろもろのハイライトモードに入るケーパビリティには、 mb (点滅)、 md
     (ボールドまたは更に明るい)、 mh (暗いまたは半輝度)、 mk (空白または見えな
     いテキスト)、 mp (保護状態)、 mr (反転表示)、 me (全ての属性モードをオ
     フ)、 as (別の文字セットモードに入る) そして ae (別の文字セットモードから
     抜ける) があります。これらのモードを単独でオンにした場合、他のモードをオ
     フにする場合もありますし、オフにしない場合もあります。

     モードの任意の組み合わせを設定するシーケンスがある場合、これは 9 個のパラ
     メータを取る sa (属性設定) で指定します。それぞれのパラメータは 0 または
     1 であり、対応する属性がオンまたはオフされます。 9 個のパラメータは順番に
     次の通りです: 強調表示・下線・反転・点滅・暗い・ボールド・空白・保護・別
     の文字セット。全モードが sa によりサポートされている必要は無く、サポート
     されているものに対応するコマンドが存在することのみ必要です。( termcap を
     使用するプログラムはこのケーパビリティをサポートしていないでしょう。この
     ケーパビリティは terminfo(5) との互換性のために定義しています。)

     各文字セルに追加された属性ビットを管理するのではなく、 ``マジッククッキ
     ー'' グリッチ (sg および ug) を持つ端末では、描画アルゴリズムに影響するモ
     ード設定シーケンスを受信した時に、特別な ``クッキー'' または ``ごみ文字''
     を画面に残します。

     Hewlett-Packard 2621 のように、新しい行へ移動した時やカーソル位置を設定し
     た時に自動的に強調表示モードから抜ける端末があります。このような端末にお
     いては、強調表示モードを使用するプログラムは、カーソル移動や改行送信前に
     強調表示モードから抜ける必要があります。このような問題が無い端末では、 ms
     ケーパビリティが存在し、このオーバヘッドが不要であることを示します。

   B>キB>ーB>パB>ッB>ド
     キーを押した時にコードを送出するキーパッドを持つ端末では、この情報を指定
     することができます。キーパッドがローカルモードにおいてのみ動作する端末は
     扱うことができないことに注意してください。 (これは例えば Hewlett-Packard
     2621 でシフト状態でないキーにあてはまります)。キーコードの送出 / 非送出を
     キーパッドに設定できる場合は、設定のためのコードは ks および ke で指定し
     ます。そうでない場合はキーパッドは常にコードを送出するものと仮定されま
     す。 left-arrow, right-arrow, up-arrow, down-arrow, home のキーで送出され
     るコードはそれぞれ kl, kr, ku, kd, kh, で指定します。 f0, f1, ..., f9 の
     ようなファンクションキーがある場合には、これらのキーが送るコードは k0,
     k1, ..., k9 で指定します。これらのキーがデフォルトの f0 から f9 以外のラ
     ベルを持つ場合、このラベルは l0, l1, ..., l9 で指定します。その他の特殊キ
     ーで送出されるコードは次のように与えられます: kH (ホームダウン)、 kb (
     バックスペース)、 ka (全タブクリア)、 kt (この桁のタブストップをクリア)、
     kC (画面クリアまたは消去)、 kD (文字削除)、 kL (行削除)、 kM (挿入モード
     から抜ける)、 kE (行末までクリア)、 kS (画面の終りまでクリア)、 kI (文字
     挿入または挿入モードに入る)、 kA (行挿入)、 kN (次のページ)、 kP (前のペ
     ージ)、 kF (前進/下降スクロール)、 kR (後退/上昇スクロール)、 kT (この桁
     にタブストップを設定)。更に、キーパッドが 4 つの矢印キーを含む 3 × 3 の
     キー配列を持つ場合、他の 5 つのキーは K1, K2, K3, K4, K5 で指定します。 3
     × 3 の方向パッドが必要な時、これらのキーは有用です。以前 ``その他'' の
     ファンクションキーを記述するために使用された、廃れた ko ケーパビリティ
     は、上記のケーパビリティにより完全に置き換えられました。

     ma エントリはまた、端末の矢印キーが 1 文字矢印キーであることを示すために
     も使用されます。これは廃れた方法ですが、 vi のバージョン 2 で未だ使用され
     ています。メモリ制約の理由で、このコマンドを使用しているミニコンピュータ
     があるでしょう。このフィールドは kl, kr, ku, kd, kh と冗長関係にありま
     す。このフィールドは 2 文字の複数グループから構成されます。各グループにお
     いては、最初の文字は矢印キーが何を送るかを表し、 2 番目の文字は対応する
     vi のコマンドを表します。コマンドは、 hkl に、 jkd に、 kku
     に、 lkr に、 Hkh に対応します。例えば Mime では
     ``ma=^Hh^Kj^Zk^Xl'' となり、矢印キーの left (^H), down (^K), up (^Z),
     down (^X) を示します。 (Mime には home キーはありません。)

   B>タB>ブB>おB>よB>びB>初B>期B>化
     これらのケーパビリティを使用するプログラムを実行する時に端末を特別なモー
     ドにすることが必要な場合、このモードに入るコードおよび出るコードは tite で指定します。これが関係あるのは、例えば Concept のようなメモリページ
     を複数持つ端末です。端末がメモリ相対のカーソル位置設定のみ持ち、画面相対
     のカーソル位置設定を持たない場合には、画面サイズのウィンドウに表示を固定
     し、カーソル位置設定が正しく動作するようにする必要があります。これは Tek-
     tronix 4025 でも使用され、 ti はコマンド文字を termcap が使うように設定し
     ます。

     他のケーパビリティとしては、端末初期化文字列 is や、長い初期化文字列を格
     納するファイル名 if があります。これらの文字列は、端末を termcap 記述と矛
     盾がないモードに設定するものと期待されています。これらは通常、ユーザがロ
     グインするたびに、 tset プログラムによって端末に送られます。印字は次の順
     に行われます: まず is; 次に ctst によるタブ設定; そして最後に if で
     す。 (terminfo(5) では is の代りに i1-i2 を使用し、プログラム iP を実行
     存在するとしても、プログラムでこれらを使用しないというのが約束になってい
     ます。なぜなら、ユーザがタブストップを正しく設定していないかもしれないか
     らです。端末電源オン時に各 n 位置ごとにハードウェアタブが初期設定される端
     末の場合、数値パラメータ it を使用し、タブストップ間隔を示します。このコ
     マンドは通常 tset コマンドが使用し、ドライバモードをハードウェアタブ展開
     に設定するか否か、およびタブストップを設定するか否かを決定します。端末が
     不揮発性メモリにタブストップを保存可能な場合、 termcap 記述はタブストップ
     が正しく設定されるものと仮定できます。

     タブストップを設定およびクリアするコマンドが存在する場合、これらのコマン
     ドは ct (全タブストップをクリア) および st (全ての行における現在の桁にタ
     ブストップを設定) で指定します。タブ設定のために、ここで示した方法より複
     雑なシーケンスが必要な場合、このシーケンスは isif で指定します。

   B>遅B>延
     端末ドライバのパディングを制御するケーパビリティもあります。これらのケー
     パビリティは、第 1 にハードコピー端末にて必要とされ、 tset プログラムによ
     り端末ドライバのモードを適切に設定するために使用されます。ケーパビリティ
     cr, sf, le, ff, ta に埋め込まれる遅延は、端末ドライバの適切な遅延ビットを
     設定する効果があります。 pb (パディングボーレート) を指定した場合、この値
     より低いボーレートにおいては、これらの値は無視されます。 4.2BSD の tset
     では、遅延は別の数値ケーパビリティ dC, dN, dB, dF, dT で与えられます。

   B>そB>のB>他
     端末が NUL (0) 文字以外のパディング文字を必要とする場合には、 pc で指定し
     ます。 pc 文字列の最初の文字のみが使用されます。

     端末がカーソル位置を保存および回復するコマンドを持つ場合には、これらは sc
     および rc で指定します。

     通常はソフトウェアが使用しない追加の ``ステータス行'' を端末が持つ場合、
     この事実を示すことができます。ステータス行が最下行の下に追加の行として見
     える場合には、ケーパビリティ hs を指定します。ステータス行の位置への移動
     およびステータス行からの復帰のための特別な文字列は、 ts および fs で指定
     します。 (ts の前にカーソルが存在した位置に、 fs はカーソルを戻す必要があ
     ります。必要ならば、 sc および rc の文字列を ts および fs に含めてこの効
     果を得ることができます。) ケーパビリティ ts は、ステータス行の何桁目にカ
     ーソルが移動すべきを示すパラメータを 1 つ取ります。エスケープシーケンスや
     他の特殊コマンド、例えばタブがステータス行でも動作するならば、フラグ es
     を指定します。ステータス行をオフにする (または内容を消去する) 文字列は、
     ds で指定します。通常、ステータス行の幅は画面の他の部分、 すなわち co と
     同じであると仮定されます。(端末が行全体の使用を許さない等の理由で) ステー
     タス行の幅が異なる場合には、その幅を桁数で数値パラメータ ws で指定しま
     す。

     端末が半行上下に移動可能な場合、 hu (半行上) および hd (半行下) で指定し
     ます。これは、ハードコピー端末で上付き文字および下付き文字を使用するため
     に有用です。ハードコピー端末がページを排出して次のページに移動 (フォーム
     フィード) することができる場合、これは ff (通常 ^L です) で指定します 。

     指定した文字を指定した回数繰り返すコマンド (同一文字を何度も送出する時間
     を節約します) がある場合、パラメータ化された文字列 rp で指定します。最初
     かければよいのか分らないとプログラムが文句を言えるようにします。 (このケ
     ーパビリティは、エスケープシーケンスが既知である 仮想端末記述にはあてはま
     りません。

     端末が xoff/xon (DC3/DC1) ハンドシェークを使用してフロー制御する場合、 xo
     を指定します。コストに関するより良い判定を可能とするために依然としてパ
     ディング情報を指定する必要がありますが、実際にパディング文字が送出される
     ということはありません。

     シフトキーのように動作し、送出される文字の 8 ビット目をセットする ``メタ
     キー'' を端末が備える場合、 km を設定してこの事実を示すことができます。こ
     れが指定されない場合は、ソフトウェアは 8 ビット目はパリティであると仮定
     し、通常これをクリアしてしまいます。 ``メタモード'' をオンおよびオフする
     文字列が存在する場合、これらは mm および mo で指定します。

     画面 1 枚分より多くのメモリ行を端末が備える場合、メモリの行数を lm で指定
     します。明示的に値 0 を指定すると、行数は固定ではないものの画面分より多く
     のメモリがあることを示します。

     UNIX システムの仮想端末プロトコルにてサポートされる端末である場合、端末番
     号は vt で与えられます。

     端末に接続された外部プリンタを制御するメディアコピー文字列は、次のように
     与えられます。すなわち ps: 画面内容の印字; pf: プリンタオフ; および po:
     プリンタオンです。プリンタオン時には、端末に送られる全てのテキストはプリ
     ンタに送られます。プリンタオン時に端末画面にもテキストが表示されるか否か
     は未定義です。このバリエーションである pO は単一のパラメータを取り、パラ
     メータ値で指定される文字数だけプリンタをオンにし、その後プリンタをオフに
     します。このパラメータは 255 を越えてはなりません。 pf を含む全テキスト
     は、 pO が有効である間、透過的にプリンタに渡されます。

     プログラムファンクションキーへの文字列は pk, pl, px で指定します。これら
     の文字列は次の 2 つのパラメータを取ります: それぞれ、プログラム対象のファ
     ンクションキー番号 (0 から 9 まで) と、プログラムの文字列です。この範囲外
     のファンクションキー番号を指定すると、ここでは定義できないキーを端末依存
     の方式でプログラムするかもしれません。これらのケーパビリティの差異は、 pk
     は指定したキーを押すと指定した文字列をユーザがタイプしたものとして扱うも
     のであり; pl はローカルモードの端末にて指定した文字列を実行させるものであ
     り; px は指定した文字列を計算機に送出させるものである点です。不幸なこと
     に、 termcap では文字列パラメータが定義されていないため、 terminfo(5) の
     みがこれらのケーパビリティをサポートします。

   B>グB>リB>ッB>チB>とB>不B>良
     文字 `~' を表示できない Hazeltine 端末は hz を指定する必要があります。

     nc ケーパビリティは現在廃れていますが、以前は Datamedia 端末を表すために
     使用していました。この端末では、キャリッジリターンに対して \r \n をエコー
     し、続くラインフィードを無視します。

     Concept のように am による折り返しの直後のラインフィードを無視する端末で
     は、 xn を指定します。

     ことにより正しく動作するようにしても構いません。

   B>似B>たB>端B>末
     2 つの非常によく似た端末がある場合、例外はあるもののもう一方にそっくりで
     あると、一方を定義することができます。文字列ケーパビリティ tc には似た端
     末の名前を与えます。このケーパビリティは 最後である必要があり、組み合わせ
     たエントリの長さは 1024 を越えてはなりません。 tc の前に指定したケーパビ
     リティは tc により呼び出される端末タイプの記述に優先します。ケーパビリ
     ティのキャンセルのためには xx@tc の呼び出しの左に置きます。 xx はキャ
     ンセルされるケーパビリティです。例えば、エントリ

           hn|2621-nl:ks@:ke@:tc=2621:

     は、ビジュアルモードでファンクションキーラベルをオンにしないために kske のケーパビリティを持たない ``2621-nl'' を定義します。端末の種々のモー
     ドやユーザの種々のプリファレンスを記述するために有用です。


関連ファイル

     /usr/share/misc/termcap     端末記述を格納するファイル
     /usr/share/misc/termcap.db  端末記述を格納するハッシュデータベースファイ
                                 ル (cap_mkdb(1) を参照)。


関連項目

     cap_mkdb(1), ex(1), more(1), tset(1), ul(1), vi(1), ncurses(3),
     printf(3), termcap(3), term(5)


警告およびバグ

     注: termcap の機能は AT&T System V UNIX Release 2.0 の terminfo(5) に置き
     換えられました。 ``廃れた'' とされるケーパビリティを使用していなければ、
     移行のための苦痛は比較的少ないです。

     現在、行数および桁数は、 termcap エントリに格納するものと同様に、カーネル
     が格納します。現在、ほとんどのプログラムはカーネルの情報を最初に使用しま
     す; このファイルに記述されている情報は、カーネルが情報を持たない時のみ使
     用されます。

     vi(1) プログラムは文字列ケーパビリティには 256 文字しか許しませんが、
     termlib(3) のルーチンはこのバッファの溢れをチェックしません。単一エントリ
     の総計の長さは 1024 を越えてはなりません (エスケープされた改行は除きま
     す)。

     全てのプログラムが全てのエントリをサポートしているわけではありません。


歴史

     termcap ファイルフォーマットは 3BSD に登場しました。

FreeBSD 4.4                     April 16, 1994                     FreeBSD 4.4

ABELNET VPSサービス