什么M- ^?在stty输出意味着什么?

时间:2016-03-29 15:47:20

标签: linux bash terminal stty

我正在尝试解决一些终端问题,我正在使用Git Bash shell从Windows笔记本电脑连接到Linux服务器。屏幕似乎没有正确刷新(清除后不清除屏幕,退出vim和man输出后停留在屏幕上等)。我正在查看stty设置并将其与另一个我没有这些问题的linux服务器进行比较。我在工作服务器上看到的一件事是eol = M-^?; eol2 = M-^?;。有人可以向我解释这个符号吗?如何在其他服务器上复制此设置?

1 个答案:

答案 0 :(得分:1)

stty仅限于单字节字符。

bash使用M-前缀的命名约定(与其他一些程序一样)来表示元标志。通常,^?是ASCII DEL(十进制127,十六进制0x7f),所以我希望M-^?为255(0xff)。

根据实施情况(请参阅_POSIX_VDISABLE的讨论)stty可能会将该值显示为undef

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

关于 meta ,ncurses在terminfo(5)中有一些文档:

  

如果终端有一个&#34;元键&#34;这是一个转变   键,设置传输的任何字符的第8 位,   这个事实可以用km来表示。否则,软件   将假设第8 位是奇偶校验并且通常是   被清除。如果存在字符串来转换这个&#34;元模式&#34;上   然后,他们可以 smm rmm

并使用keyname函数返回该格式的值:

  

128以上的值是元字符(如果是   屏幕尚未初始化,或者meta已经初始化   使用TRUE参数调用,以 M-X 表示法显示,或显示为自身。在后者   例如,值可能无法打印;这是如下   X / Open规范。

进一步阅读: