aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man5/termcap.5
blob: e298828a5b23778e27bf977d05bb711e83ff82f9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
.\" 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.       *
.\" *                                                                          *
.\" ***************************************************************************/
.\"
.\"	%Id: termcap.5,v 1.9 1998/06/23 05:30:26 hoek Exp %
.\"
.\" jpman %Id: termcap.5,v 1.4 1998/06/13 12:34:58 horikawa Stab %
.\" 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 BSD 3
.Sh 名称
.Nm termcap
.Nd 端末ケーパビリティのデータベース
.Sh 書式
.Nm
.Sh 解説
.Nm
ファイルは端末に関するデータベースであり、例えば
.Xr \&vi 1
や
.Xr curses 3
が使用します。
.Nm
には、端末が持つケーパビリティと、
操作がどのように行われるのかが記述されています。
パディングの必要性および初期化シーケンスも
.Nm
に記述されています。
.Pp
.Nm
のエントリは `:' で区切られた複数個のフィールドからなります。
各端末の最初のエントリは、`|' 文字で区切った端末名です。
最初の名前は、その端末の最も一般的な省略形です。
最後の名前は端末を完全に識別するための長い名前であり、
その他は端末名の類義語です。
最後以外の名前は小文字を使い、空白を含まないようにしてください;
最後の名前は、可読性のために大文字や空白を含んでかまいません。
.Pp
端末名 (最後の冗長なエントリを除く) は次の約束に従い選んでください。
端末を構成するハードウェアの特定の一部を、
.Dq hp2621
のように根幹の名前として選びます。
この名前はハイフンを含んではなりません。
ハードウェアのモードやユーザのプリファレンスは、
ハイフンとモード指示子を追加して示します。
ですから、132 桁モードの
.Dq vt100
は
.Dq vt100-w
になります。可能ならば、以下の接尾辞を使用してください:
.Pp
.Bd -filled -offset indent
.Bl -column indent "With automatic margins (usually default)xx"
.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
.Ed
.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	垂直ハイライトモードに入る

.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	矢印キーを rogue(1) の移動キーにマップ
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 \&:
を入れる必要がある場合、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 \&%.
を使用する端末は、カーソルをバックスペース
.Po Sy \&le Pc
させる機能と画面上で 1 行カーソルを上に移動
.Po Sy \&up Pc
する機能を持つ必要があります。
なぜなら
.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
ケーパビリティは完全性のために記述しています。
.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
との互換性のために定義しています。)
.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 のキー配列を持つ場合、
他の 5 つのキーは
.Sy \&K1 ,
.Sy \&K2 ,
.Sy \&K3 ,
.Sy \&K4 ,
.Sy \&K5
で指定します。
3 × 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
では
.Sy \&is
の代りに
.Sy \&i\&1-i2
を使用し、プログラム
.Sy \&iP
を実行し、他の初期化の後
.Sy "\&i\&3"
を印字します。)
まったくわけがわからない状態から回復するためのよりハードな
リセットシーケンスの組が、類推できる名前
.Sy \&rs
および
.Sy \&rf
で与えられます。
これらの文字列は、端末がはまった状態に陥いった時に使用される
.Xr reset
プログラムにより出力されます。
.Pf ( Xr terminfo
は
.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
の機能であり、
.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
のみがこれらのケーパビリティをサポートします。
.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
(破壊的なタブ) を指定する必要があります。
このグリッチは、\*(lqマジッククッキー\*(rq の先頭に
カーソル位置を設定できないことと、
強調表示を消すためには行削除と行挿入が必要であることも表現します。
.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 curses 3 ,
.Xr printf 3 ,
.Xr termcap 3 ,
.Xr term 5
.Sh 警告およびバグ
.Em 注 :
.Nm
の機能は
.At V
Release 2.0 の
.Xr terminfo
に置き換えられました。
.Dq 廃れた
とされるケーパビリティを使用していなければ、
移行のための苦痛は比較的少ないです。
.Pp
現在、行数および桁数は、
termcap エントリに格納するものと同様に、カーネルが格納します。
現在、ほとんどのプログラムはカーネルの情報を最初に使用します;
このファイルに記述されている情報は、
カーネルが情報を持たない時のみ使用されます。
.Pp
.Xr \&vi 1
プログラムは文字列ケーパビリティには 256 文字しか許しませんが、
.Xr termlib 3
のルーチンはこのバッファの溢れをチェックしません。
単一エントリの総計の長さは 1024 を越えてはなりません
(エスケープされた改行は除きます)。
.Pp
全てのプログラムが全てのエントリをサポートしているわけではありません。
.Sh 歴史
.Nm
ファイルフォーマットは
.Bx 3
に登場しました。