到现在,我们已经介绍了很多键盘信号,每个键盘信号都对应于键盘上的一些键。这些键盘信号如下表,都是最常见的键映射,但是它们是不固定的。
信号
|
键
|
作用
|
erase
|
<Backspace>/<Delete>
|
删除键入的最后一个字符
|
werase
|
^W
|
删除键入的最后一个单词
|
kill
|
^X/^U
|
删除整行
|
intr
|
^C
|
停止正在运行的程序
|
quit
|
^\
|
停止程序并保存core文件
|
stop
|
^S
|
暂停屏幕显示
|
start
|
^Q
|
重新启动屏幕显示
|
eof
|
^D
|
指示已经没有数据
|
如果需要显示Unix中键盘映射时,使用下述命令:
stty -a
stty是“set terminal(设置终端)“命令,-a意味着“显示所有的设置”。
stty命令显示了若干行关于终端的信息。我们感兴趣的是那些显示键盘信号即它们所映射的键的信息行。下面是一个Linux系统的例子:
2. 键映射的修改:stty如果希望修改键映射,可以使用stty命令。只需键入stty,后面跟着信号的名称,然后是新的键赋值即可。例如将kill键修改为^U的命令如下:
stty kill ^U
重点在于:一定要确保以两个单独的字符的形式键入<Ctrl>键组合,而不是一个真正的<Ctrl>组合键。stty将会指出其中一个字符代表<Ctrl>键。例如,在这个例子中,应该键入^(插入记号)字符,后面跟一个U字符,而不应该键入<Ctrl-U>。
当在stty命令中使用带<Ctrl>的字符名时,不必键入大写字母。例如,下述两条命令都能正常工作:
stty kill ^u
stty kill ^U
只需记住,要键入两个单独的字符。
严格的讲,可以将任何键映射到一个信号上。例如,可以将字母K映射到kill信号上。洗面两条命令都可以完成上述工作:
stty kill k
stty kill K
当然,这样的映射只会导致问题,每次按下<K>键时,Unix都将删除那一行字符!
通常在映射中只使用<Ctrl>键组合。实际上,在几乎全部情况中,最好是保持事情原来的方式,坚持标准的赋值键。
但是,还有一种情况,在这种情况中,您可能希望进行修改。假设您经常通过网络连接一台远程主机,在这台主机上,erase键是^?。但是,您的Backspace键发送^H。为了使操作更加方便,需要将^H映射到erase。这就允许您在按下<Backspace>键时删除一个字符。
stty erase ^H
下面举一个相反的例子。您连接到一台主机,这台主机将^H映射到erase。但是,您的<Backspace>(或者<Delete>键)发送^?信号。这是,使用stty修改映射的命令如下所示:
stty erase ^?
记住,表示法^?并不是指一个实际的<Ctrl>键组合。^?只是一个两字符的缩写,代表“which key on your keyboard sends the DEL code(键盘上用来发送DEL代码的任意键)“。
如果决定查看键盘的映射,可以使用前面描述的命令进行查看:
stty -a
另外,还可以只输入stty命令本身:
stty
这将显示一个简短报告,仅显示那些默认值已经改变的映射。
沒有留言:
張貼留言