执行没有键绑定的readline函数?


26

我刚读了readline手册页,发现了一堆我不知道的好命令。但是,有些没有默认的键绑定。有没有办法从外壳执行未绑定的命令?

我不是在问如何在〜/ .inputrc中绑定命令,而是如何从外壳或bash脚本中以“一次性”执行命令。

例如,“转储变量”命令。是否有一些命令可以将“ dump-variables”作为参数执行?


2
快速浏览一下readline手册和资料来源,我认为没有。
吉姆·巴黎

Answers:


10

我相信您正在寻找的是bind命令本身。根据man builtin运行信息bind <readline-command>,您可以一次性运行,但是,我无法像手册所说的那样使它正常运行……它使键不起作用。你的旅费可能会改变。我确实找到了以下可能对您有用的命令。

bind -p # Equivalent to dump-functions [machine readable]
bind -P # Equivalent to dump-functions [human readable]

bind -s # Equivalent to dump-macros    [machine readable]
bind -S # Equivalent to dump-macros    [human readable]

bind -v # Equivalent to dump-variables [machine readable]
bind -V # Equivalent to dump-variables [human readable]

编辑说明 我想指出它令人讨厌的是,它不像手册中所说的那样起作用,因为如果您键入bind然后按Tab键自动完成,它将显示所有命令。


3
重新直接调用readline函数:我不认为该手册实际上声称您可以做到;如果您使用的是语法形式bind readline-command:我怀疑command这里代表定义(映射)行,而不是直接可调用的readline 函数。自动完成功能是在某些平台(例如Fedora 20)上显式预配置的功能,而在许多其他平台上则不是这样;它的存在并不意味着您可以直接调用readline函数-这是一个相当“笨拙”的命令完成规范:补全适用于提供给的任何参数bind
mklement0 2014年

1
+1为列出有效功能/宏/变量的命令;它的值得加入-X对于外壳命令(通过定义-x)。
mklement0 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.