防止 readline 行提交

Prevent readline line submit

我在实时跟踪输入的应用程序中使用 readline。我不想让用户按 Enter、Control + J 或任何其他等效键,从而无意中清除该字段。

我实际上是自己转发密钥,所以我可以捕获并阻止某些密钥输入,但我不认为这是可行的方法,因为还必须处理反向搜索 (Control - R)。

我查看了 gnu 文档,但没有找到任何有用的信息。

我的代码与此类似https://github.com/ulfalizer/readline-and-ncurses

您可以在 libreadline 的初始化文件中禁止配置键绑定的键:

  1. ~/.inputrc中为当前用户配置
  2. /etc/inputrc 中为所有用户配置。

要禁止EnterControl+J,可以在初始化文件中加入:

RETURN:
C-J:

如果您愿意,可以使用 rl_unbind_key 以编程方式执行此操作,添加到您的代码中:

rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J