我正在尝试解决一些终端问题,我使用 Git Bash shell 从 Windows 笔记本电脑连接到 linux 服务器。屏幕似乎没有正确刷新(clear 不会清除屏幕,退出 vim 和 man 输出后留在屏幕上等)。我正在查看 stty 设置并将其与另一个没有这些问题的 linux 服务器进行比较。我在工作服务器上看到的一件事是eol = M-^?; eol2 = M-^?;
. 有人可以向我解释这个符号吗?如何在另一台服务器上复制此设置?
1047 次
1 回答
2
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)
:
如果终端有一个“元键”作为移位键,设置 传输的任何字符的第 8 位,这个事实可以用 km 表示。否则,软件将假定第8位是奇偶校验位,通常会被清除。如果存在用于打开和关闭此“元模式”的字符串,则可以将它们指定为
smm
andrmm
。
并且使用该keyname
函数,它以该形式返回值:
大于 128 的值要么是元字符(如果屏幕尚未初始化,或者元已使用 TRUE 参数调用),以MX 表示法显示,要么显示为它们本身。在后一种情况下,这些值可能无法打印;这遵循 X/Open 规范。
进一步阅读:
- Alt 键在 bash 中不起作用
- 9.13 为什么我的 Meta 键在 xterm 窗口中不起作用?(GNU Emacs 常见问题解答)
- 如果 _POSIX_VDISABLE 值为 -1 怎么办?
- 17.4.9 特殊字符(GNU C 库)
于 2016-03-29T23:05:40.093 回答