【发布时间】:2011-05-04 06:57:01
【问题描述】:
大家好,我一直在为自动完成和 readline 苦苦挣扎,如果我有这样的一系列选项:
["@lorem", "@ipsum", "#bla", "#meh"]
我在提示符中输入@(at 符号)并按 TAB,它会显示所有选项:
what do you want? > @[TAB]
@lorem @ipsum #bla #meh
但如果我使用任何其他标志,它会起作用:
what do you want? > #[TAB]
#bla #meh
这是我目前的代码:
opts = ["@lorem", "@ipsum", "#bla", "#meh"]
question = "whatever? > "
Readline.completion_append_character = " "
Readline.completion_proc = proc { |s| opts.grep( /^#{Regexp.escape(s)}/ ) }
while value = Readline.readline(question, true)
exit if value == 'q'
puts value.chomp.strip
end
end
有人知道我怎样才能让 Readline 知道 @'s 吗?
【问题讨论】:
-
你能告诉我们你到目前为止有什么代码吗?
-
我刚刚用代码更新了帖子,谢谢。