小编Ant*_*lix的帖子

通过 .inputrc 将 Ci 和 TAB 键绑定到终端应用程序中的不同命令

为了什么我都试过了,TAB并且C-i在.inputrc文件似乎意味着同样的事情,无论我绑定到一个绑定到其他。我知道最初是一样的,而且这种行为是从旧时代继承下来的,但是现在,除了终端仿真器之外,所有 X 应用程序都使 aC-iTABpress有所不同。

那么有没有办法在我按下TAB键时运行终端命令(例如“完成”)并在按下时运行另一个命令C-i

(同样的问题适用于C-mand ENTER, C-z, C-d,以及我想通过原始绑定以外的其他方式发送的所有这些控制序列,并将我自己的命令应用于这些宝贵的键绑定)

顺便说一句,如果你能解释一下从按键到 shell 解释的过程,这将有助于我理解。现在我明白键盘事件由 Xmodmap 翻译,然后由 .inputrc 翻译,结果由 shell 或类似的东西解释。

我目前使用 Guake,有时使用 gnome-terminal 作为终端模拟器。

按照评论中提出的链接后,终端模拟器似乎是将TABkeysym 从 X 服务器转换为 的链的元素C-i,并将其发送到 bash shell,因为它不理解诸如TAB,ENTER和兄弟姐妹之类的东西。因此,在终端模拟器之后和 bash shell 之前,配置 readline 本身将不起作用。问题可以这样精确:如何配置我的终端模拟器,以便将TABand C-iENTERandC-m等转换为不同的字符序列对?也许制作TABENTER发送一个新的自定义转义序列,稍后可以在 .inputrc 中映射到原始命令,最后能够使用C-iC-m用于其他目的。或者离开TABENTER …

bash terminal-emulator terminal inputrc

5
推荐指数
1
解决办法
1820
查看次数

标签 统计

bash ×1

inputrc ×1

terminal ×1

terminal-emulator ×1