Readline.completion_append_character не работает для irb - PullRequest
3 голосов
/ 09 августа 2011

Я построил свой рубин так:

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

Когда я делаю табуляцию, он добавляет пробел после всего. Я нашел в документации, что есть переменная с именем completion_append_character. Он установлен на пробел. Если я установлю его на ноль или любой другой символ, он все равно добавляет пробел. Как заставить его перестать добавлять пробел после завершения?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

Я сам столкнулся с этим вопросом и считаю, что поздний ответ лучше, чем отсутствие ответа. После некоторых исследований это ошибка в самом Ruby или Readline, и, похоже, она присутствует в каждой ревизии Ruby, которую я смог найти, что заставляет меня думать, что это Readline. Я смог решить проблему с

gem install rb-readline

, а затем

require 'rb-readline'

в моем сценарии. Rb-readline (Ruby Readline) представляет собой замену в виде вставки, чистую Ruby-реализацию Readline, она не зависит от расширения C, а переменная Readline.completion_append_character является функциональной.

1 голос
/ 29 февраля 2012

Эта проблема решена в последней версии Ruby 1.9.3-p125, как вы можете видеть в Changelog :

Ср. 8 февраля 10:34:59 2012 ТАКАО Коджи

  • ext / readline / readline.c (readline_attempted_completion_function): в модуле Readline с корпусом GNU Readline 6, модуль Readline сбрасывает завершение_append_character в "" после выполнения завершение. Итак, модуль Readline хранит extension_append_character, и модуль Readline всегда устанавливает его после того, как модуль Readline выполнит завершение. [Рубиновый Dev: 43456] [Feature # 4635]
...