【问题标题】:How can I read partially entered text from bash?如何从 bash 中读取部分输入的文本?
【发布时间】:2017-08-19 23:28:16
【问题描述】:

当我输入一些文本然后Ctrl+R时,部分输入的文本出现在反向搜索提示中:

> hello[Ctrl+R]
(reverse-i-search)`': hello

我正在寻找替代反向搜索的方法。快捷方式可以重新绑定运行不同的程序,例如:

bind -x '"\C-R":"echo test"'
> hello[Ctrl+R]
test
> hello

如何从绑定 Ctrl+R 的程序访问部分输入的命令/文本 hello

制表符补全集COMP_WORDSCOMP_LINE 等。我正在寻找类似的东西,最好是由 C/C++ 可执行文件直接访问。

【问题讨论】:

    标签: c bash readline


    【解决方案1】:

    在这里找到我想要的东西:https://unix.stackexchange.com/a/82716/54030

    环境变量READLINE_LINE可以读取甚至修改:

    bind -x '"\C-R":"echo cmd=$READLINE_LINE"'
    > hello[Ctrl+R]
    cmd=hello
    
    bind -x '"\C-R":"READLINE_LINE=replaced; READLINE_POINT=8"'
    > hello[Ctrl+R]
    ... becomes
    > replaced
    

    READLINE_POINT用于设置光标位置。

    【讨论】:

      猜你喜欢
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多