Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103153109
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-03-25 21:09:54

以下以sco unix 5,实达终端为例,目的要把F3、F5、F6定义为VT100下的相应键值:
1、先从以下表格找到要自定义的功能键的“位置码”,

注:(对于PC101键盘  Ctrl+F1~F12óF1~F12即两边是等价的,以下同理。Shift+F11~F12óAlt+F11~F12

对于VT220键盘  Shift+F6~F20óF6~F20

由表格中查询可知以下功能键之位置码,F3=19,F5=21,F6=24
 

PC101键盘

VT220键盘

位置码

Ctrl+F1

Shift+F6

17

Ctrl+F2

Shift+F7

18

Ctrl+F3

Shift+F8

19

Ctrl+F4

Shift+F9

20

Ctrl+F5

Shift+F10

21

Ctrl+ESC

Shift+F11

23

Ctrl+F6

Shift+F12

24

Ctrl+F7

Shift+F13

25

Ctrl+F8

Shift+F14

26

Shift+F11

Shift+Help

28

Shift+F12

Shift+Do

29

Ctrl+F9

Shift+F17

31

Ctrl+F10

Shift+F18

32

Ctrl+F11

Shift+F19

33

Ctrl+F12

Shift+F20

34

通过Setup键盘设置中定义键切换可使自定义功能键和固有功能键相互切换。

2、在Sco unix下运行
infocmp vt100,结果如下:
# infocmp vt100
#       Reconstructed via infocmp from file: /usr/lib/terminfo/v/vt100
vt100|vt100-am|dec vt100 (w/advanced video),
        am, mir, msgr, xenl, xon,
        cols#80, it#8, lines#24, vt#3,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
        clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
        cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n,
        cuf=\E[%p1%dC, cuf1=\E[C$<2>,
        cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
        cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>,
        el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=\t,
        hts=\EH, ind=\n, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=\b,
        kc1=\EOp, kc3=\EOn, kcub1=\E[D, kcud1=\E[B,
        kcuf1=\E[C, kcuu1=\E[A, kent=\EOM, kf0=\EOy, kf1=\EOP,
        kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
        kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
        rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmso=\E[m$<2>,
        rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
        sc=\E7,
        sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;,
        sgr0=\E[m^O$<2>, smacs=^N, smso=\E[1;7m$<2>,
        smul=\E[4m$<2>, tbc=\E[3g,
 
注意上面的红色部分,这就是VT100的F3、F5、F6的相应键值,以kf3=\EOR为例,kf3表示功能键F3,在E表示ESC键,后面就是英文字母OR了,注意以上键值是大小写敏感的。
 
3.现在根据下面的对照表查键值相应的ASCII码,同样以F3的键值EOR为例(注意E代表ESC键)
 ESC=21,O=79,R=82
 

ASCII码

键盘

ASCII 码

键盘

ASCII码

键盘

ASCII 码

键盘

27

ESC

32

SPACE

33

!

34

"

35

#

36

$

37

%

38

&

39

'

40

(

41

)

42

*

43

+

44

'

45

-

46

.

47

/

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

<

61

=

62

>

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124

|

125

}

126

~

 
4.打开windows下的计算器,切换到科学计算器模式,把上面查到的ASCII转换成十六进制,以上面的结果为例,结果如下
 
ESC=21=1b,O=79=4f,R=82=52
 
也就是说,现在F3的十六进制键值为1b4f52
 
5.按照实达终端的技术手册给出的设置语法,设置F3、F5、F6功能键的unix语句如下
 
echo "\033P1;1|19/1b4f52;21/1b4f74;24/1b4f75\033\\"
 
其中,红色部分为我们要修改的部份,其他是固定的标志符序列。 
F3键相应的设置为19/1b4f52
F5键的相应的设置为21/1b4f74
F6键的相应的设置为24/1b4f75
6.把这句话加进需要设置些功能键的相应用户的.profile文件中,bingo!!!!
阅读(883) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~