使用" readline"时如何绑定Ctrl + Enter;图书馆?

时间:2016-08-12 12:07:36

标签: linux bash shell readline

我正在写一个* nix shell,我想支持 Ctrl - Enter 的组合键。我使用的库是GNU readline。

我花了好几个小时,但找不到方法。

我可以成功绑定 Enter ,例如:

=========〜/ .inputrc ===============

viewDidLoad

====================================

当我按 Enter 时,我得到了" sdf"和预期一样回应。

我也可以成功绑定 Esc Enter (注意,这里是关键序列,而不是组合),如:

=========〜/ .inputrc ===============

"\C-M": "sdf"

====================================

当我按 Esc 然后按 Enter ," sdf"如预期般回应。

但是,以下行无法生成有效的 Ctrl - Enter 组合:

=========〜/ .inputrc ===============

"\e\C-M": "sdf"

====================================

并且," \ C- \ C-M"也不起作用。

以下是两个相关问题:

how to bind the 'Enter key'

How to bind Ctrl-Enter in fish?

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您没有提到您使用的终端仿真器 - 这很重要,因为最后,当您按 CTRL + ENTER时,终端决定程序从中读取的内容

实现这项工作的一种方法是(假设您使用xterm):

  • xterm发送,例如 CTRL + k CTRL + ENTER ,在.Xdefaults中添加一行:

    XTerm.vt100.translations: #override Ctrl<Key>Return: string("\013")

  • 将此绑定到.inputrc

    中您想要的任何内容

    "\C-k": "sdf"

不是很优雅,因为这只适用于xterm。但是,据我所见,唯一可以得到你想要的东西。