日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
TERMCAP(5) FreeBSD ファイルフォーマットマニュアル TERMCAP(5) 名称 termcap -- 端末ケーパビリティのデータベース 書式 termcap 解説 termcap ファイルは、例えば、vi(1) と ncurses(3) によって使用される、端末 を記述するデータベースです。端末は、どのように操作が実行されるかを記述す ることによって、ケーパビリティの集合を与えることによって termcap で記述さ れます。パディング要件と初期化シーケンスは、termcap に含められています。 termcap のエントリは、多くの `:' で区切られたフィールドから成ります。端末 ごとの最初のエントリは、`|' 文字によって区切られた端末について知られてい る名前を与えます。与えられた最初の名前は、端末のための最も共通の省略形で す。与えられた最後の名前は、端末を完全に識別している長い名前であるべき で、他のすべては、端末名のための同義語として解釈されます。最後の名前以外 のすべての名前は、小文字であり、空白を含むべきではありません。最後の名前 は、読みやすさのために大文字と空白を含んでもかまいません。 (最後の冗長なエントリを除いて) 端末の名前は、次の規約を使用して選択される べきです。端末を構成するハードウェアの特定の要素は、``hp2621'' のように、 根底の名前を選択するべきです。この名前は、ハイフンを含むべきではありませ ん。指定できるハードウェアのモードまたはユーザの好みは、モードのハイフン と指定子を付け加えることによって示されるべきです。したがって、132 カラム モードの ``vt100'' は、``vt100-w'' となります。次の接尾辞は、次のように指 定できるところで使用されるべきです: 接尾辞 意味 例 -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) 与えられるように parms (引数?) で tparm(3) または tgoto(3) を通して渡されることを示します (#i)。 (P*) パディングが、影響された行の数に比例して変化することを示します。 (#i) i 番名のパラメータを示します。 これらは、ブール値のケーパビリティです: ブール値 TCap 説明 変数 コード 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 行ピッチを変更することは, 解像度を変更 これらは、数値ケーパビリティです: 数値 TCap 説明 変数 コード 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 構造に存在しますが, # マニュアルページで, まだ文書化されていません. # それらは, 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 ビットイメージデバイスのタイプ これらは、文字列ケーパビリティです: 文字列 TCap 説明 変数 コード 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 バックスペースキー 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 ホームキー 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 'keyboard_transmit' モードから抜ける keypad_xmit ks 'keyboard_transmit' モードに入る 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 ケーパビリティは, ここで停止する. terminfo の IBM のバージョンは, # このポイントまで SVr4 と同じですが, それ以後は, 異なるセットがある. # char_padding rP insert_padding と似ていますが挿入モードの とき acs_chars ac 図形文字セットの組 - def=vt100 plab_norm pn 文字列 #2 を表示するプログラムラベル #1 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 シフト状態のキー key_scancel &0 シフト状態のキー key_scommand *1 シフト状態のキー key_scopy *2 シフト状態のキー key_screate *3 シフト状態のキー key_sdc *4 シフト状態のキー key_sdl *5 シフト状態のキー key_select *6 select キー key_send *7 シフト状態のキー key_seol *8 シフト状態のキー key_sexit *9 シフト状態のキー key_sfind *0 シフト状態のキー key_shelp #1 シフト状態のキー key_shome #2 シフト状態のキー key_sic #3 シフト状態のキー key_sleft #4 シフト状態のキー key_smessage %a シフト状態のキー key_smove %b シフト状態のキー key_snext %c シフト状態のキー key_soptions %d シフト状態のキー key_sprevious %e シフト状態のキー key_sprint %f シフト状態のキー key_sredo %g シフト状態のキー key_sreplace %h シフト状態のキー key_sright %i シフト状態のキー key_srsume %j シフト状態のキー key_ssave !1 シフト状態のキー key_ssuspend !2 シフト状態のキー key_sundo !3 シフト状態のキー 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 ソフトウェアビットを印刷ヘッドピンと照合 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 を表示する プログラムファンクションキー #1 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 ケーパビリティ。新しいソフトウェアは、まったく、それら に依存するべきではありません。 ブール値 TCap 説明 変数 コード linefeed_is_newline NL ^J で下に移動 even_parity EP 端末は, 偶数パリティを要求 odd_parity OP 端末は, 奇数パリティを要求 half_duplex HD 端末は, 半二重 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 行の始めに行く方法がない 数値 TCap 説明 変数 コード 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 のために必要なパディング 文字列 TCap 説明 変数 コード 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 でないなら, 左に移動 サンプルのエントリ Concept-100 を記述する、次のエントリは、この書き込みのように termcap ファ イルのより複雑なエントリの間にあります。 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: エントリは、行の最後の文字として \ を与えることによって複数の行を続けるこ とができ、空のフィールドは、(ここで、行の最後のフィールドと次の最初の フィールドの間に) 読みやすさのために含めることができます。コメントは、 ``#'' で始まる行に含められます。 ケーパビリティのタイプ termcap のケーパビリティは、次の 3 タイプです: 端末が持っている特定の機能 を示すブール値ケーパビリティ。表示部のサイズまたは他の属性のサイズを与え る数値ケーパビリティ。そして、特定の端末操作を実行するために使用すること ができる文字シーケンスを与える、文字列ケーパビリティ。すべてのケーパビリ ティには、2 文字のコードがあります。例えば、Concept に、自動マージン (行 の終わりに到達するとき、自動的なリターンとラインフィード) があるという事 実は、ブール値ケーパビリティ am によって示されます。したがって、Concept の記述は、am を含みます。 数値ケーパビリティは、文字 `#' が続き、次に値が続きます。上記の例で、表示 部が持っているカラムの数を示す co は、Concept に対して値 `80' を与えま す。 最後に、ce (行末までクリア (clear-to-end-of-line) シーケンス) のような、 文字列値ケーパビリティは、`='、と、次に続く `:' で文字列が終る 2 文字コー ドによって与えられます。ミリ秒単位の遅延は、パディング文字が、文字列の残 りが、この遅延を提供するために送信された後に、tputs(3) によって供給され る、そのようなケーパビリティで `=' の後に、現れます。`20' のような数値、 または、`3*' のような `*' が続いている数値のいずれかで遅延を指定すること ができます。`*' は、必要なパディングが、操作によって影響された行の数と比 例していることを示し、与えられた量は、必要な影響される行ごとのパディング であることを示しています。(insert-character の場合に、ファクタは、まだ、 影響された行の数です。これは、端末に in があり、ソフトウェアがそれを使用 しないなら、常に 1 です。) `*' が指定されるとき、それは、時々、10 分のミ リ秒の行ごとの遅延を指定するために形式 `3.5' の遅延を与えるために役に立ち ます。(ただ 1 つの小数位が許可されます。) 多くのエスケープシーケンスは、制御文字の容易なエンコーディングのための文 字列値のケーパビリティで提供されます。\E は、ESC 文字にマップし、^X は、 あらゆる適切な X のための control-X にマップし、シーケンス \n \r \t \b \f は、それぞれ、ラインフィード、リターン、タブ、バックスペースとフォーム フィードにマップします。最後に、文字は、\ の後に 3 つの 8 進数として与え られ、文字 ^ と \ は、\^ と \\ として与えられます。ケーパビリティに : を 置く必要があるなら、それは、\: としてエスケープされるか、または \072 とし てエンコードされなければなりません。文字列ケーパビリティにに NUL (ヌル) 文字を置く必要があるなら、それは、\200 としてエンコードされなければなりま せん。(termcap を扱うルーチンは、C 文字列を使用し、\200 が \000 として現 れることができるように、たいへん遅い出力の高位ビットを取り除きます。) ときどき、個別のケーパビリティは、コメントアウトされなければなりません。 これを行なうためには、ケーパビリティ名の前にピリオドを置きます。例えば、 上記の例で最初の cr と ta を参照してください。 記述の準備 端末記述を準備するための最も効果的な方法は、termcap の似た端末の記述を模 倣することで、それらが正しいことをチェックするために、vi(1) で部分的な記 述を使用して、徐々に記述を構築することです。たいへんめずらしい端末は、そ れを記述する termcap ファイルの能力の不足か、または vi(1) のバグを露呈す るかもしれないことに注意してください。利用者が取り掛かる新しい端末の記述 を容易にテストするために、利用者は、.termcap と呼ばれるファイルを利用者の ホームディレクトリに置くことができ、プログラムは、/usr/share/misc/termcap を探す前に、そこを探します。また、利用者は、(空白またはコロンによって区切 られる) 絶対的ファイルのパス名のリスト、利用者が取り掛かる記述を含んでい る、プログラムがリストされる順序で、それらを検索し、他の場所がないものへ の環境変数 TERMPATH を設定することができます。termcap(3) を参照してくださ い。TERMCAP 環境変数は、プログラムを起動するとき、ファイルを読み込むこと を避けるために、通常 termcap エントリ自体に設定されます。 行の挿入 (insert-line) のためのパディングを正しく取得するためには、(端末 の製造業者がそれを文書化していなかったなら) 厳格なテストは、9600 ボーで /etc/passwd を編集するために vi(1) を使用することで、画面の中間から約 16 行を削除し、次に、`u' キーを迅速に数回押します。表示部が混乱するなら、通 常、より多くのパディングが必要です。insert-character (文字挿入) のため に、同様のテストを使用することができます。 基本的なケーパビリティ 表示の各行のカラムの数は、co 数値ケーパビリティによって与えられます。表示 が CRT であるなら、画面の行数は、li ケーパビリティによって与えられます。 表示がカーソルが右のマージンに到着するとき、次の行の最初に回り込むなら、 それは、am ケーパビリティがあるべきです。端末がその画面をクリアすることが できるなら、これを行なうためのコードは、cl 文字列ケーパビリティによって与 えられます。端末 (文字が上書きされるとき、位置をクリアするのではなく) 重 ね打ちするなら、それは、os ケーパビリティがあるべきです。端末がソフトコ ピーユニットなしの印刷端末であるなら、hc と os の両方が与えられます。(os は、ハードコピーと APL 端末と同様に、Tektronix 4010 シリーズのような、記 憶域スコープ端末に適用します。) カーソルを現在の行の左端に移動させるため のコードがあるなら、cr としてこれを与えます。(通常、これは、キャリッジリ ターン (復帰改行)、^M です。) 可聴シグナル (ベル、ビープ音など) を生成す るコードがあるなら、bl としてこれを与えます。 カーソルを (バックスペースのような) 左に 1 つ移動するためのコードがあるな ら、そのケーパビリティは、le として与えられるべきです。同様に、右、上、下 に移動するコードは、それぞれ、nd, up と do として与えられるべきです。これ らのローカルなカーソルの動作は、それらが通り過ぎるテキストを変更するべき ではありません。例えば、空白が、移動する文字を消去するので、端末に os ケーパビリティがあるなら、利用者は、通常、``nd= '' を使用しないでしょう。 ここで、たいへん重要なポイントは、termcap でエンコードされるローカルな カーソルの動作が CRT ディスプレイの左端と上端での振る舞いが未定義です。プ ログラムは、bw が与えられないなら、決して左端の回りでバックスペースを試み ません、そして、ローカルなカーソルの動作を使用して、決して先頭から上に上 がり、はなれることを試みません。 テキストを上にスクロールするために、プログラムは、画面の左下のコーナーに 行き、sf (インデックス) 文字列を送ります。テキストを下にスクロールするた めに、プログラムは、画面の左上のコーナーに行き、sr (逆のインデックス) 文 字列を送ります。文字列 sf と sr は、画面のそれらの個別のコーナーでないと き、振る舞いは未定義となります。スクロールシーケンスのパラメータ化された バージョンは、それらが 1 つのパラメータを取り、その多くの行をスクロールす ることを除いて、sf と sr のような同じ意味がある、SF と SR です。また、そ れらは、画面の適切なコーナーであることを除いて振る舞いは未定義となりま す。 am ケーパビリティは、テキストがそこで出力されるとき、カーソルが画面の右端 で動かなくなるかを伝えますが、これは、必ずしも最後のカラムから nd に適用 されません。左方向のローカルな動作は、bw が与えられるときのみ、左端から定 義されます。次に、左端の le は、前の行の右端に移動します。例えば、これ は、画面の端のまわりのボックスを描画のために役に立ちます。端末に切り替え 選択可能な自動的なマージンがあるなら、termcap の記述は、通常、この機能が オンであると仮定します、すなわち、 am。端末に、次の行の最初のカラムに移動 するコマンドがあるなら、nw (改行) として、そのコマンドを与えることができ ます。現在の行を残りをクリアするために許容されているので、端末が正しい動 作 CR と LF がないなら、それの 1 つまたは両方の外の nw 動作をつくることが まだ可能です。 これらのケーパビリティは、ハードコピーと ``glass-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 は、次のように記述されます。 l3|adm3|3|LSI ADM-3:\ :am:bl=^G:cl=^Z:co#80:cr=^M:do=^J:le=^H:li#24:sf=^J: パラメータ化された文字列 カーソルのアドレッシングとパラメータを必要とする他の文字列は、他の文字 が、変更されずに通過する間に、printf(3) に似たエスケープ %x で、パラメー タ化された文字列ケーパビリティによって記述されます。例えば、cm ケーパビリ ティが与えられるカーソルをアドレスするために、次の 2 つのパラメータを使用 します: 移動する行とカラム。(行とカラムは、0 から番号が付けられ、ユーザに 見える物理的な画面を参照し、あらゆる見えないメモリは、参照しません。端末 がメモリに相対的なカーソルのアドレッシングがあるなら、それは、類似の CM ケーパビリティによって示すことができます。) % エンコーディングは、次の意味があります: %% `%' を出力 %d printf(3) %d のように値を出力 %2 printf(3) %2d のように値を出力 %3 printf(3) %3d のように値を出力 %. printf(3) %c のように値を出力 %+ x を値に追加し、次に %. を行ないます %> if 値 > x then y に追加します, 出力なし %r 2 つのパラメータの順序を逆にする, 出力なし %i 1 増加,出力なし %n 0140 ですべてのパラメータを排他的論理和 (Datamedia 2500) %B BCD (16*(value/10)) + (value%10), 出力なし %D 逆のコーディング (value - 2*(value%16)), 出力なし (Delta Data) 行 3 とカラム 12 に行くために、6 ミリ秒のためにパディングされた ``\E&a12c03Y'' を送信する必要がある、Hewlett-Packard 2645 を考慮します。 行とカラム座標の順序は、ここで反転され、行とカラムが 2 桁の整数として送信 されることに注意してください。したがって、その cm ケーパビリティは、 ``cm=6\E&%r%2c%2Y'' です。 Datamedia 2500 は、現在の行とカラムが ``%.'' を使用するバイナリでエンコー ドされ送信される必要があります。``%.'' を使用する端末は、カーソル (le) を 後退してる、画面 (up) で 1 行上にカーソルを移動することができる必要があり ます。システムがそれらを変更するか、または破棄することができるように \n, ^D と \r を転送することが常に安全であるわけではないので、これは、必要で す。(termcap を使用しているプログラムは、タブが展開されないように端末モー ドを設定しなければならないので、\t は、安全に送信されます。これは、Ann Arbor 4080 のために必須であることが分かります。) 最終的な例は、``cm=\E=%+ %+ '' のように、空白文字によって行とカラムを補正 する Lear Siegler ADM-3a です。 行またはカラムの絶対値のカーソルのアドレッシングは、単一のパラメータの ケーパビリティ ch (絶対の水平位置) と cv (絶対の垂直位置) として与えるこ とができます。時々、これらは、(Hewlett-Packard 2645 のように) より一般的 な 2 つのパラメータシーケンスより短く、cm に優先して使用することができま す。パラメータ化されたローカルな動作 (例えば、 n 個右に位置を移動する) が あるなら、どのくらい位置を移動するかを示す単一のパラメータで DO, LE, RI と UP として、これらを与えることができます。これらは、端末が Tektronix 4025 のような cm がない場合に、主に役に立ちます。 カーソル動作 端末が、カーソルをホームに (画面の左上のコーナーに) 移動するすばやい方法 があるなら、これは、ho として与えることができます。同様に、下左のコーナー に移動するすばやい方法は、ll として与えることができます。これは、ホームポ ジションから up で上に上がることを含みますが、プログラムは、それが、ホー ムポジションから、上に上がる効果に関して仮定しないので、(ll を行なわない なら)、決してそれ自体を行なうべきではありません。ホームポジションがカーソ ルアドレス (0,0) と同じであることに注意してください: メモリではなく、画面 の左上コーナーに行くために。(したがって、Hewlett-Packard 端末での ``\EH'' シーケンスは、ho のために使用することはできません。) 領域クリア その場所にカーソルをそのままにして、端末が現在の位置から行の終わりまでク リアすることができるなら、これは、ce として与えられるべきです。端末が現在 の位置から表示部の終わりまでクリアすることができるなら、これは、cd として 与えられるべきです。cd は、行の最初のカラムだけから呼び出さなければなりま せん。(したがって、真の cd が利用可能ではないなら、それは、多くの行を削除 するための要求によってシミュレートすることができます。) 行に挿入/行を削除する 端末がカーソルを含んでいる行の前に新しい空行を開くことができるなら、これ は、al として与えられるべきです。これは、行の最初の位置だけから呼び出され なければなりません。次に、カーソルは、新しい空行の左に現れなければなりま せん。端末がカーソルがオンの行を削除することができるなら、これは、dl とし て与えられるべきです。これは、削除される行の最初の位置からのみ使用されな ければなりません。単一のパラメータを取り多くの行を挿入するか、または削除 する al と dl バージョンは、AL と DL として与えることができます。(VT100 のような) 端末に設定可能なスクロール領域があるなら、これを設定するコマン ドは、2 つのパラメータを取る cs ケーパビリティで記述することができます。 スクロール領域の上端と下端の行。悲しいかな、カーソル位置は、このコマンド を使用した後に未定義です。このコマンドを使用して行の挿入と削除の効果を取 得することが可能です -- sc と rc (カーソルを保存して、復元する) コマンド も、また役に立ちます。画面の上端または下端の挿入行は、また、真の挿入/削除 行なしで多くの端末の sr または sf を使用して行なうことができ、それらの機 能がある端末でさえしばしばより速くなります。 端末が、すべてのコマンドが影響するメモリの一部としてウィンドウを定義する 能力があるなら、それは、パラメータ化された文字列 wi として与えられるべき です。4 つのパラメータは、この順序で、メモリの開始と終了の行とメモリの開 始と終了のカラムです。(この terminfo(5) ケーパビリティは、完全性のために 記述されます。あらゆる termcap を使用するプログラムは、それをサポートする ことは起こりそうもありません。) 端末が画面の上部の表示メモリを保持することができるなら、da ケーパビリティ が与えられるべきです。表示メモリが下部に保持することができるなら、db が与 えられるべきです。行を削除すること、またはスクロールすることは、空白でな い行を下から上に持って来ること、または sr で後ろにスクロールすることは、 空白でない行を下に下げることを示します。 文字を挿入/削除する termcap を使用して記述することができる、文字を挿入して/削除することに関し て、2 の基本的な種類のインテリジェント端末があります。最も共通の挿入/削除 文字の操作は、現在の行の文字だけに影響し、厳密に行の終わりの文字をシフト します。Concept-100 とPerkin Elmer Owl のような、他の端末は、2 つのタイプ されない空白を削除するか、または展開する、画面でタイプされない挿入、また は削除でシフトして、画面のタイプされた空白とタイプされない空白を区別をし ます。利用者は、画面をクリアすることによって利用者の端末の種類を決定する ことができ、次にカーソル動作によって分離されるテキストをタイプします。 ``abc'' と ``def'' の間のローカルなカーソル動作 (空白でない) を使用して ``abc def'' をタイプします。次に、``abc'' の前にカーソルを位置付け、端 末を挿入モードにします。文字をタイプすることによって、行の残りが、厳密に シフトし、文字が終わりに落ち込むなら、利用者の端末は、空白とタイプされな い位置を区別しません。``abc'' が、``def'' に転換して、現在の行の終わりと 一体となって利用者が挿入するように次に移動するなら、利用者は、端末の 2 番 目のタイプがあり、``insert null'' (空を挿入する) を意味するケーパビリティ in を与えるべきです。これらが、2 つの論理的に個別の属性 (1 つの行 vs 複数 行の挿入モードとタイプされない空白の特別な取り扱い) ですが、挿入モードが 単一の属性で記述できない端末を見ませんでした。 termcap エントリは、現在の行の空白の位置を開くために簡単なシーケンスを送 信する挿入モードと端末がある両方の端末を記述することができます。挿入モー ドに入るためのシーケンスを im として与えます。挿入モードから離れるシーケ ンスを ei として与えます。現在、挿入される各文字の直前に送る必要があるあ らゆるシーケンスを ic として与えます。真の挿入モードがあるほとんどの端末 は、ic を与えません。画面の位置を開くためのシーケンスを使用する端末は、こ こで与えるべきです。(利用者の端末が両方を持っているなら、挿入モードは、通 常 ic より好ましい。端末が、実際に、組み合わせで使用される両方とも必要と しないなら、両方とも与えません。) 挿入後にパディングが必要であるなら、ip (文字列オプション) の多くのミリ秒としてこれを与えます。単一の文字の挿入の 後に送られる必要があるあらゆる他のシーケンスを、ip で与えることができま す。利用者の端末が `挿入モード' に置かれる必要があり、各挿入された文字に 先行している特別なコードが必要であるなら、im/ ei と ic の両方を与えること ができ、両方が使用されます。1 つのパラメータがある ic ケーパビリティは、 ic n 回の効果を繰り返します。 同じ行の文字を削除するために挿入モードの間にときどきあちこち移動する必要 があります、(例えば、挿入位置の後にタブがあるなら)。利用者の端末が挿入 モードの間に動作を許可するなら、利用者は、この場合に挿入の速度を上げるた めに、ケーパビリティ mi を与えることができます。mi を省略することは、速度 だけに影響します。いくつかの端末 (特に、Datamedia) は、挿入モードで動作す るそれらの方法のために、mi があってはなりません。 最後に、利用者は、単一の文字を削除する dc、n 個の文字を削除する 1 つのパ ラメータ n がある DC、(動作する dc のために置かれる必要がある端末のあらゆ るモードである) 削除モードに入り、削除モードを出るために dm と ed を与え ることによる削除モードを指定することができます。 ハイライト、下線と可視のベル 利用者の端末が 1 以上の種類の表示部属性があるなら、これらは、多くの異なっ た方法で表すことができます。利用者は、良い高いコントラスト、強調エラー メッセージのための目にやさしい形式、と他の注目を集めるものを表す、強調表 示モードとして 1 つの表示形式を選択するべきです。(利用者が選択するなら、 反転映像プラス半分の明るさは、良く、または反転映像のみです。) 強調表示 モードに入り、出るシーケンスは、それぞれ、so と se として与えられます。強 調表示モードに入るか、または出る変更するコードが、TVI 912 と Teleray 1061 が行なうように、画面の 2 つの空白類または文字化けでさえ、残るなら、sg は、いくつの文字が残されるかを伝えるために与えられるべきです。 下線の開始と下線を終るコードは、それぞれ、us と ue としてそれぞれ与えるこ とができます。下線モードの変更のごみは、sg と似ている ug によって指定され ます。Microterm Mime のように、端末に、現在の文字に下線を引くためのコード とカーソルを 1 つ右の位置に移動するコードがあるなら、これは、uc として与 えることができます。 様々な強調モードに入る他のケーパビリティは、mb (点滅)、md (ボールドまたは 特に明るい)、mh (薄暗いまたは半分明るい)、mk (空白にするまたは見えないテ キスト)、mp (保護)、mr (反転映像)、me (すべての属性モードをオフにする)、 as (代替の文字セットモードに入る) と ae (代替の文字セットモードから出る) を含みます。これらのモードのいずれかをオンにすることは、他のモードをオフ にするかどうかわかりません。 モードの任意の組み合わせを設定するためのシーケンスがあるなら、これは、sa (属性を設定) として与えられるべきで、9 つのパラメータを取ります。各パラ メータは、対応する属性がオンまたはオフであるように、0 または 1 です。9 つ のパラメータは、次の順序です: 強調表示、下線、反転、点滅、薄暗い、ボール ド、空白、保護と代替の文字セット。すべてのモードは、sa によってサポートさ れる必要があるわけではありません、対応する属性コマンドが存在するためだけ に必要です。(termcap を使用プログラムは、terminfo(5) との互換性のために定 義される、このケーパビリティをサポートすることはありそうにないでしょう。) ``マジッククッキー'' 問題 (sg と ug) がある端末は、それらが、表示アルゴリ ズムに影響する、モード設定シーケンスを受信するとき、特別の ``cookies'' (クッキー) または ``garbage characters'' (文字化け) を預ける代りに、文字 セルごとに特別な属性ビットを維持しません。 Hewlett-Packard 2621 のような、いくつかの端末は、それらが新しい行に移動す るときかまたはカーソルがアドレスされるとき、自動的に強調表示モードから抜 けます。強調表示モードを使用しているプログラムは、カーソルを動かすか、ま たは改行を送る前に、そのような端末で強調表示モードを終了するべきです。こ れが問題ではない端末で、ms ケーパビリティは、このオーバヘッドが不要である ことを記述するために存在するべきです。 端末が、(ベルの代りに) エラーを静かに示すために画面をフラッシュする方法が あるなら、これは、vb として与えることができます。それは、カーソルを移動し てはなりません。 カーソルが、下端の行でないとき、通常より見えやすくする必要があるなら (例 えば、点滅していない下線を見つけやすいブロックか、または点滅する下線に変 更するために)、vs としてのこのシーケンスを与えます。カーソルを完全に見え なくする方法があるなら、vi としてそれを与えます。これらのモードの両方の効 果を取り消すケーパビリティ ve も、また与えられるべきです。 利用者の端末が、たとえそれが重ね打ちしなくても、(特別なコードを必要とせず に) 下線文字を正しく表示するなら、利用者は、ケーパビリティ ul を与えるべ きです。重ね打ちが空白で消去可能であるなら、これは、eo を与えることによっ て示されるべきです。 キーパッド 端末が、キーが押されるとき、コードを転送するキーパッドがあるなら、この情 報を与えることができます。キーパッドがローカルモードでのみ動作するところ で、端末を処理することができないことに注意してください (例えば、これは、 シフトされていない Hewlett-Packard 2621 キーに適用します)。転送するか、転 送しないか、キーパッドを設定することができるなら、ks と ke としてこれらの コードを与えます。そうでなければ、キーパッドは、常に転送することが仮定さ れます。コードは、左矢印、右矢印、上矢印、下矢印よって送られ、それぞれ、 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 x 3 の 配列があるなら、他の 5 つのキーは、K1, K2, K3, K4 と K5 として与えること ができます。これらのキーは、 3 x 3 の方向パッドの効果が必要なとき、役に立 ちます。``other'' (他) のファンクションキーを記述するために以前使用され た、時代遅れの ko ケーパビリティは、上記のケーパビリティによって完全に 取って代られました。 ma エントリは、また、単一文字の矢印キーがある端末の矢印キーを示すために使 用されます。それは、時代遅れですが、メモリ制限のために、いくつかのミニコ ンピュータで実行されなければならない、vi のバージョン 2 でまだ使用中で す。このフィールドは、kl, kr, ku, kd と kh で冗長です。それは、2 文字のグ ループから成ります。各グループで、最初の文字は、矢印キーが送るものであ り、2 番目の文字は、対応する vi コマンドです。これらのコマンドは、kl ため の h、kd のための j、ku のための k、kr のための l、kh のための H です。例 えば、Mime には、矢印キー左 (^H)、下 (^K)、 上 (^Z) と右 (^X) をしてい る、``ma=^Hh^Kj^Zk^Xl'' があります。(Mime でホームキーはありません。) タブと初期化 端末が、これらのケーパビリティを使用するプログラムを実行するとき、特別な モードになる必要があるなら、このモードに入り、出るコードは、ti と te とし て与えることができます。例えば、これは、1 ページのメモリを超える Concept のような端末から、生じます。端末にメモリに相対のカーソルのアドレッシング のみあり、画面に相対のカーソルのアドレッシングがないなら、画面サイズの ウィンドウは、適切に動作するためにカーソルのアドレッシングのための表示に 固定されなければなりません。これは、また、ti が termcap によって使用され たものとなるコマンド文字を設定するところで、Tektronix 4025 のために使用さ れます。 他のケーパビリティは、端末のための初期化文字列である、is と長い初期化文字 列を含んでいるファイルの名前である if を含みます。これらの文字列は、 termcap の記述の残りと一致しているモードに端末を設定するように期待されて います。それらは、通常、ユーザのログインのたびに tset(1) プログラムによっ て端末に送られます。それらは、次の順序で印刷 (表示) されます: is。ct と st を使用してタブを設定する。そして最後に if。(terminfo は、is の代りに i1-i2 を使用し、プログラム iP を実行し、他の初期化の後に i3 を印刷 (表示) します。) 全体に未知の状態からハードなリセットを行なうシーケンスのペア は、おなじように rs と if のように与えることができます。これらの文字列 は、端末がくさび (wedge) の状態に入るとき、使用される reset(1) プログラム によって出力されます。(terminfo は、rs の代わりに r1-r3 を使用します。) コマンドは、通常、それらが画面で面倒な効果を生成し、ログインするとき、必 要でないなら、rs と rf に置かれます。例えば、VT100 を 80 カラムモードに設 定するコマンドは、通常、is の部分となりますが、それは、画面の面倒な問題を 起こし、端末は、通常、すでに 80 カラムモードであるので、普通は必要ではあ りません。 端末にハードウェアタブがあるなら、次のタブストップに進むコマンドを ta (通 常 ^I) として与えることができます。前のタブストップに左側に移動する ``backtab'' コマンドは、bt として与えることができます。慣例により、端末ド ライバモードが、タブストップが端末に送られるのではなくコンピュータによっ て展開されていることを示すなら、ユーザは、タブストップを適切に設定さする ことができないので、たとえそれらが存在しても、プログラムは、ta または bt を使用するべきではありません。端末に、端末の電源が入れられるとき、始めに n 個の位置ごとに設定されるハードウェアタブがあるなら、タブストップの間の 位置の数を表示している、数値パラメータ it が与えられます。これは、通常、 ハードウェアタブの展開のためのドライバモードを設定するかどうか、タブス トップを設定するかどうかを決定するために tset(1) コマンドによって使用され ます。端末に、不揮発性メモリに保存することができるタブストップがあるな ら、termcap の記述は、それらが適切に設定されることを仮定することができま す。 タブストップを設定して、クリアするコマンドがあるなら、それらは、(すべての タブストップをクリアする) ct と (すべての行の現在のカラムにタブストップを 設定する) st として与えることができます。より複雑なシーケンスが、これに よって記述することができるより、タブを設定するするために必要であるなら、 is または if にシーケンスを置くことができます。 遅延 特定のケーパビリティは、端末ドライバのパディングを制御します。これらは、 ハードコピー端末によって主に必要とされ、端末ドライバモードを適切に設定す るために、tset(1) プログラムによって使用されます。ケーパビリティ cr, sf, le, ff と ta に埋め込まれた遅延によって、適切な遅延ビットは、端末ドライバ で設定されます。pb (パディングボーレート) が与えられるなら、これらの値 は、pb の値の下のボーレートで無視することができます。4.2BSD の tset(1) に ついて、遅延は、代わりに、数値のケーパビリティ dC, dN, dB, dF と dT とし て与えられます。 その他 端末がパッドとして NUL (0) 文字を以外を必要とするなら、これは、pc として 与えることができます。pc 文字列の最初の文字だけが使用されます。 端末にカーソルの位置を保存して、復元するためのコマンドがあるなら、sc と rc としてそれらを与えます。 端末にソフトウェアによって通常、使用されない特別の ``status line'' (状態 行) があるなら、この事実を示すことができます。状態行が最下位行の下の特別 な行として見られるなら、ケーパビリティ hs が、与えられるべきです。状態行 の位置に行く特別な文字列と状態行から返ることは、ts と fs として与えられる ことができます。(fs は、ts の前であった同じ場所のカーソル位置を離れなけれ ばなりません。必要であるなら、sc と rc 文字列は、この効果を取得するために ts と fs に含めることができます。) ケーパビリティ ts は、カーソルが移動さ れる状態行のカラム番号である、1 つのパラメータを取ります。エスケープシー ケンスとタブのような他の特別なコマンドは、状態行の間に動作するなら、フラ グ es を与えることができます。状態行 (または、そうでなければ、その内容を 消去する) をオフにする文字列は、ds として与えられるべきです。状態行は、通 常、画面の残りすなわち 、 co と同じ幅であると仮定されます、状態行が、異な る幅 (あるいは、端末が、全体の行をロードすることができないので) であるな ら、カラムのその幅は、数値パラメータ ws によって示すことができます。 端末が半分の行を上または下に移動することができるなら、これは、hu (半行上 がる) と hd (半行下がる) で示すことができます。これは、ハードコピー端末の 上付き文字と下付き文字のために主に役に立ちます。ハードコピー端末が次の ページ (フォームフィード) にイジェクトすることができるなら、ff (通常 ^L) としてこれを与えます。 (多くの同一の文字を転送する時間を節約するために) 与えられた回数与えられた 文字を繰り返すコマンドがあるなら、これは、パラメータ化された文字列 rp で 示すことができます。最初のパラメータは、繰り返される文字であり、2 番目 は、それを繰り返す回数です。(これは、termcap を使用するプログラムによって サポートされそうにない terminfo(5) 機能です。) 端末に、Tektronix 4025 のような、設定可能なコマンド文字があるなら、これ は、CC で示すことができます。プロトタイプコマンド文字は、すべてのケーパビ リティで使用されるか選択されます。この文字は、それを識別する CC ケーパビ リティで与えられます。次の規約は、いくつかの UNIX システムでサポートされ ます: 環境は、variable 変数を検索することであり、見つけられるなら、プロト タイプ文字のすべての出現は、環境変数の文字によって置き換えられます。CC 環 境変数のこの使用は、それが make(1) と矛盾しているので、非常に悪い考えで す。 switch, dialup, patch と network のような、既知の端末の特有の種類を表さな い端末記述は、プログラムが、それらが、どのように端末と通信するかを知らな いことにエラーを出すことができるように、gn (一般的) ケーパビリティを含む べきです。(このケーパビリティは、エスケープシーケンスが知られている仮想端 末の記述に適用されません。) 端末が、フロー制御のために xoff/xon (DC3/DC1) ハンドシェイクを使用するな ら、xo を与えます。パディング情報は、ルーチンがコストに関してよりよい決定 を行なうことができるように、まだ含まれるべきですが、実際のパディング文字 は、転送されません。 端末に、シフトキーのように動作する ``meta key'' (メタキー) があるなら、転 送されるあらゆる文字の 8 番目のビットを設定して、次に、km で、この事実を 示すことができます。そうでなければ、ソフトウェアは、8 番目のビットがパリ ティであり、通常それがクリアされていることを仮定します。この ``meta mode'' (メタモード) オンとオフに切り替える文字列が存在するなら、それら は、mm と mo として与えることができます。 端末が、すぐに画面に適合するより多い行のメモリがあるなら、メモリの行の数 は、lm で示すことができます。0 の明示的な値は、行の数が固定されないことを 示しますが、画面の適合するより多くのメモリがあることを示します。 端末が、UNIX システムの仮想端末プロトコルによってサポートされたそれらの 1 つであるなら、端末数は、vt として与えることができます。 端末と接続された予備のプリンタを制御する文字列をコピーするメディアは、画 面の内容を印刷 (表示) する ps: プリンタをオフにする pf: そしてプリンタを オンにする po: として与えられます。プリンタがオンのとき、端末に送らるすべ てのテキストは、プリンタに送られます。テキストが、プリンタがオンのとき、 端末画面にまた表示されるかどうかは未定義です。バリエーション pO は、 1 つ のパラメータを取り、パラメータの値として多くの文字としてプリンタをそのま まとし、次にプリンタをオフにします。パラメータは、255 を越えるべきではあ りません。pf を含んで、すべてのテキストは、pO が実際である間に、がプリン タに透明的に渡されます。 プログラムのファンクションキーへの文字列は、pk, pl と px として与えられる ことができます。これらの文字列のそれぞれは、2 つのパラメータを取ります: (0 から 9 までの) プログラムするファンクションキーの番号とプログラムする 文字列。この範囲外のファンクションキーの番号は、端末依存の方法で未定義な キーをプログラムします。ケーパビリティの差異は、pk によって、与えられた キーを押すことは、与えられた文字列をタイプしているユーザと同じとなりま す。pl によって、文字列をローカルモードの端末によって実行します。そして、 px によって、文字列をコンピュータに転送します。不幸にも、termcap の文字列 パラメータのための定義の不足のために、terminfo(5) だけがこれらのケーパビ リティをサポートします。 xterm(1) 端末エミュレータについて、less(1) または more(1) のようなペー ジャ (pager) または vi(1) のようたエディタが存在するとき、FreeBSD の伝統 的な振る舞いは、プログラムが終了したのち、画面をクリアしません。利用者が 画面をクリアするのを好むなら、利用者が直接または例として使用できる termcap ファイルにこのケーパビリティを追加する多くの ``xterm-clear'' エン トリがあります。 不具合と損傷 `~' 文字を表示することができない Hazeltine 端末は、hz を示すべきです。 nc ケーパビリティは、現在、時代遅れで、以前に示された Datamedia 端末で キャリッジリターンのための \r \n をエコーし、次に続くラインフィードを無視 します。 Concept のような am ラップ (折り畳み) の直後に、ラインフィードを無視する 端末は、xn を示すべきです。 ce が、(その上、単に通常のテキストを書く代わりに) 強調表示を取り除くこと を要求されるなら、xs は、与えられるべきです。 タブが、空白を越えて移動させるすべての文字を変える Teleray 端末は、xt (破 壊的なタブ) を示すべきです。この不具合は、また、``magic cookie'' (魔法の クッキー) に加えてカーソルを置くことが可能ではないこと、そして行を削除 し、挿入するために使用する必要がある強調表示モードを消去することを意味す るように取られます。 ESC または ^C 文字を正しく転送することができない Beehive Superbee は、 ``f1'' キーが ESC のためと ^C のための ``f2'' を使用することを示します。 (特定の Superbees だけは、ROM に依存してこの問題があります。) 他の特有な端末問題は、形式 xx の多くのケーパビリティを追加することによっ て訂正されます。 似た端末 2 つのたいへん似た端末があるなら、それは、特定の例外で他と同様であると定 義することができます。文字列ケーパビリティ tc は、似た端末の名前で与える ことができます。このケーパビリティは、最後でなければなりません、エントリ の組み合わされた長さは、1024 を越えてはなりません。tc の前に与えられた ケーパビリティは、tc によって呼び出された端末タイプのそれらを上書きしま す。ケーパビリティは、xx がケーパビリティであるところで、tc 呼び出しの左 に xx@ を置くことによってキャンセルすることができます。例えば、エントリ hn|2621-nl:ks@:ke@:tc=2621: は、ks または ke ケーパビリティがない ``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), xterm(1), ncurses(3), printf(3), termcap(3), term(5) 警告とバグ 注: termcap 関数は、AT&T System V UNIX リリーズ 2.0 の terminfo(5) によっ て置き換えられました。ケーパビリティが ``obsolete'' (時代遅れ) として注意 されるなら、移行は、相対的に苦痛ではありません。 行とカラムは、現在 termcap エントリと同様にカーネルによって格納されます。 ほとんどのプログラムは、現在主にカーネル情報を使用します。このファイルの 情報は、カーネルがあらゆる情報がない場合のみ使用されます。 vi(1) プログラムは、文字列ケーパビリティのために 256 文字だけを許可し、 termlib(3) のルーチンは、このバッファのオーバフローをチェックしません。 (エスケープされた改行のみを除き) 単一エントリの合計の長さは、1024 を越え てはいけません。 すべてのプログラムが、すべてのエントリをサポートするわけではありません。 歴史 termcap ファイル形式は、3BSD で登場しました。 FreeBSD 13.0 December 13, 2009 FreeBSD 13.0