2

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

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

我查看了 gnu 文档,但没有发现任何有用的东西。

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

4

1 回答 1

1

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

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

要禁止Enterand Control+J,您可以添加到初始化文件中:

返回:
CJ:

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

rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J
于 2016-09-22T13:55:19.477 回答