【问题标题】:Readline.completion_append_character doesn't work for irbReadline.completion_append_character 不适用于 irb
【发布时间】:2023-03-11 11:40:01
【问题描述】:

我是这样构建我的红宝石的:

brew install readline
rvm install ruby-1.9.2-head -C --with-readline-dir=/usr/local/Cellar/readline/6.2.1/

当我完成制表符时,它会在所有内容之后附加一个空格。我在文档中发现有一个名为completion_append_character 的变量。它被设置为一个空格。如果我将它设置为 nil 或任何其他字符,它仍然会附加一个空格。如何让它在完成后停止附加空格?

【问题讨论】:

    标签: ruby readline irb


    【解决方案1】:

    我自己也遇到了这个问题,我认为迟到的答案总比没有答案好。在做了一些研究之后,这是 Ruby 或 Readline 本身的一个错误,并且似乎存在于我能找到的每个 Ruby 修订版中,这让我认为它是 Readline。我能够用

    解决问题

    gem install rb-readline

    然后

    require 'rb-readline'

    在我的脚本中。 rb-readline (Ruby Readline) 是 Readline 的一个插入式替代,纯 Ruby 实现,不依赖 C 扩展,Readline.completion_append_character 变量是函数式的。

    【讨论】:

      【解决方案2】:

      这个问题在 Ruby 1.9.3-p125 的最新版本中得到解决,您可以在 Changelog 中看到:

      2012 年 2 月 8 日星期三 10:34:59 TAKAO Kouji

      • ext/readline/readline.c(readline_attempted_completion_function): 在带有 GNU Readline 6 案例的 Readline 模块中,Readline 模块 在执行后将 completion_append_character 重置为“” 完成。所以,Readline 模块存储 completion_append_character,并且 Readline 模块总是设置它 Readline 模块执行完成后。 [红宝石开发:43456] [功能 #4635]

      【讨论】:

        猜你喜欢
        • 2016-10-17
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        相关资源
        最近更新 更多