Readline.completion_append_character对irb不起作用

时间:2011-08-08 21:49:08

标签: ruby readline irb

我像这样建造了我的红宝石:

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或任何其他字符,它仍会附加一个空格。如何让它在完成后停止附加空格?

2 个答案:

答案 0 :(得分:2)

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

解决问题

gem install rb-readline

然后

require 'rb-readline'

在我的脚本中。 Rb-readline(Ruby Readline)是Readline的替代,纯Ruby实现,不依赖于C扩展,Readline.completion_append_character变量是有效的。

答案 1 :(得分:1)

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

  

Wed Feb 8 10:34:59 2012 TAKAO Kouji

     
      
  • ext / readline / readline.c(readline_attempted_completion_function):   在带有GNU Readline 6案例的Readline模块中,Readline模块   执行后,将completion_append_character重置为“”   完成。所以,Readline模块存储   completion_append_character和Readline模块始终设置它   Readline模块执行完成后。 [红宝石-dev的:43456]   [专题#4635]
  •