配置 Ruby 的 pry 中的键绑定行为

配置 Ruby 的 pry 中的键绑定行为

ruby 的“pry”编辑器中的键绑定开始表现得与“irb”中的行为不同,我想知道如何改变这种行为(感觉它应该是可配置的)。

具体来说,“Alt-B”和“Alt-F”会在我输入的行中向后或向前跳转并停在“单词边界”处。不同之处在于“pry”和“irb”现在对“单词边界”有不同的理解。

例如,如果我输入以下文本

a.b.c.d

然后在行末按下“Alt-B”,我期望光标返回到d,然后到c,然后到b。在 中发生了这种情况irb,但在 中pry它一直返回到a

如果我输入

a,b,c,d

在这种情况下,按“Ctrl-W”应该会删除整个字符串,但这只在 中有效irb。在 中,pry它只会删除d,然后c,,然后b,,最后a

另一个改变行为的键绑定似乎是Control-UControl-K。它们过去分别用于删除到行首或行末的所有字符,但现在pry control-u会删除整行。

答案1

一种解决方法是在我的项目中安装rb-readline。我的绑定现在可以按预期工作。

我注意到 ruby​​ readline gem 似乎没有链接到系统 libreadline 库,并且它没有任何对其的INPUTRC引用inputrc

然后我看了看pry 建议的 readline 库并意识到安装rb-readline解决了我的问题。

抱歉,如果没有 Readline 或兼容库,您将无法使用 Pry。

可能的解决方案:

  • 使用以下方法重建 Ruby 以支持 Readline--with-readline
  • 使用 rb-readline gem,它是 Readline 的纯 Ruby 端口
  • 使用 pry-coolline gem,它是 Readline 的纯 ruby​​ 替代品

相关内容