stty 不显示向后删除单词快捷方式

stty 不显示向后删除单词快捷方式
stty -a

表明,

speed 38400 baud; rows 39; columns 143; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

在这里,我没有看到M-DEL哪个是emacs用于向后删除一个单词的样式快捷方式。

我可以使用什么 stty 子命令来重新映射密钥backward-delete-word

答案1

M-Del 只是一个 emacs 键绑定。它不是内核中 tty 驱动程序通常解释的东西。向后字擦除或 werase 在输出中设置为 control-W (^W) stty -a

内核以字节为单位工作,因此如果使用 UTF-8 编码,将很难绑定非 ASCII 字符进行擦除。事实上,M-Del 将是 0xff,这是一个在 UTF-8 中从未出现过的字节。

最好的选择是使用 bash 或 tcsh 之类的 shell,将终端置于 cbreak 模式以实现其自己的行编辑功能。 Bash 似乎默认将 M-Del 绑定到单词擦除。您还可以bind -P在 bash 中运行来查看哪些键绑定到哪些编辑功能。

相关内容