如何解决Ruby行编辑telnet服务器
| 我正在Ruby中实现一个小的telnet服务器。我当前面临的问题是我想添加阅读行支持,以便获得制表符完成和命令行历史记录支持。我看过Readline库,但似乎只能通过stdin来工作。在Ruby中有什么方法可以做到这一点(我注意到Python的解决方案)?解决方法
您可以通过将管道插入readline来实现。这是使用ri readline文档中的
while
循环的示例,该循环仅将command 1
,command2
,command 3
发送到readline。
require \'readline\'
rd,wr = IO.pipe
(1..3).each do |i|
wr.puts \"command #{i}\"
end
wr.close
Readline.input = rd
while buf = Readline.readline(\'\',true)
p Readline::HISTORY.to_a
print(\"-> \",buf,\"\\n\")
end
输出:
[\"command 1\"]
-> command 1
[\"command 1\",\"command 2\"]
-> command 2
[\"command 1\",\"command 2\",\"command 3\"]
-> command 3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。