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 中运行来查看哪些键绑定到哪些编辑功能。