我想做的是让C-h不向后发送-删除-char
在我的inputrc文件中没有任何关于它的内容,而是显示在bind -p中。
发布于 2019-06-26 13:05:26
绑定到nop将抑制键操作,但如果您希望将键释放为前缀,则不会有所帮助。假设您希望将“M”指定为一组相关宏的前缀,例如,序列“macro”被绑定到一个只需键入长命令controlct sensor instance的宏。自然,"M-c M-d“会打印其他东西,以此类推。
但是有一个默认的绑定"\ec": capitalize-word",它会妨碍您。如果您足够快地打印键序列“M”(具体来说,在keyseq-timeout读行变量设置的毫秒内),您将得到所需的行为。但是如果您逗留,bash将单独执行“M”默认绑定,即nop命令。所以在这种情况下,您确实需要解除键的绑定,而不是将其重新绑定到什么都不做的事情上。
幸运的是,readline很容易支持这一点(@ that 996142在注释中提供了正确的语法和引用):
"\ec":独自一人在一条线上。这就清除了绑定。
警告时间:重新启动bash (例如,exec bash -l),而不仅仅是用“C”重新加载.inputrc文件。重新加载后,readline可能不会报告绑定(bind -l没有显示它,bind -q capitalize-word很高兴地报告“大写字没有绑定到任何键”,但仍然超时,就像绑定到nop一样)。这是bash或readline的某些版本中的一个bug。
发布于 2021-01-23 17:19:15
我必须使用以下方法解除绑定。对我来说难以捉摸的重要部分是添加周围的单引号。
FWIW,当直接在shell中运行命令时,许多变体都会工作。但是,当将命令包含在.inputrc或.sh文件中时,这是我发现的唯一起作用的东西。
'"\ec":''"\C-c":'下面的-u <readline command name>有时似乎也能工作。
bind -u yank
bind '"\C-y":' https://unix.stackexchange.com/questions/374441
复制相似问题