防止 readline 行提交
Prevent readline line submit
我在实时跟踪输入的应用程序中使用 readline。我不想让用户按 Enter、Control + J 或任何其他等效键,从而无意中清除该字段。
我实际上是自己转发密钥,所以我可以捕获并阻止某些密钥输入,但我不认为这是可行的方法,因为还必须处理反向搜索 (Control - R)。
我查看了 gnu 文档,但没有找到任何有用的信息。
您可以在 libreadline 的初始化文件中禁止配置键绑定的键:
- 在
~/.inputrc
中为当前用户配置
- 在
/etc/inputrc
中为所有用户配置。
要禁止Enter和Control+J,可以在初始化文件中加入:
RETURN:
C-J:
如果您愿意,可以使用 rl_unbind_key 以编程方式执行此操作,添加到您的代码中:
rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J
我在实时跟踪输入的应用程序中使用 readline。我不想让用户按 Enter、Control + J 或任何其他等效键,从而无意中清除该字段。
我实际上是自己转发密钥,所以我可以捕获并阻止某些密钥输入,但我不认为这是可行的方法,因为还必须处理反向搜索 (Control - R)。
我查看了 gnu 文档,但没有找到任何有用的信息。
您可以在 libreadline 的初始化文件中禁止配置键绑定的键:
- 在
~/.inputrc
中为当前用户配置 - 在
/etc/inputrc
中为所有用户配置。
要禁止Enter和Control+J,可以在初始化文件中加入:
RETURN:
C-J:
如果您愿意,可以使用 rl_unbind_key 以编程方式执行此操作,添加到您的代码中:
rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J