Node JS REPL、Sockets 和 Telnet - Tab 补全、箭头键等
Posted
技术标签:
【中文标题】Node JS REPL、Sockets 和 Telnet - Tab 补全、箭头键等【英文标题】:Node JS REPL, Sockets, and Telnet - Tab Completion, Arrow Keys, etc 【发布时间】:2012-01-28 19:24:59 【问题描述】:我一直在玩 Node 的 REPL。我认为通过 Socket 使其可用,通过 Telnet/puTTY/whatever 连接到它,并即时调试我的服务器会非常酷。
我使用了这里找到的示例:http://nodejs.org/docs/latest/api/repl.html,基本上看起来像这样......
net.createServer(function (socket)
var cmd = repl.start(">", socket);
//... some other stuff here.... not important
).listen(5001);
好的,太好了!现在我可以使用 Telnet 连接到端口 5001 并与 REPL 交互。但是,我遇到了控制字符的问题(即 Tab、Ctrl+C、向上箭头、向下箭头等)。我怎样才能让这些工作?例如,如果我使用 telnet 连接,输入“1+1
$ telnet localhost 6634
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>1+1
2
>^[[A
...
编辑:我也发现了这个问题,可能相关也可能不相关 - Arrow keys turn into control characters in Telnet
编辑 2:嗯...rlwrap
似乎解决了我的大部分问题:
$ rlwrap telnet localhost 6634
唯一不起作用的是局部/全局变量的制表符完成,我想我可以没有它。我最关心的是命令历史。 rlwrap
很干净!
【问题讨论】:
【参考方案1】:见上文。
rlwrap telnet localhost 6634
【讨论】:
你可以使用 -c -f 开关来模拟制表符完成:blog.lishman.com/2008/04/rlwrap.html 显然你需要一个 node.js 关键字列表以上是关于Node JS REPL、Sockets 和 Telnet - Tab 补全、箭头键等的主要内容,如果未能解决你的问题,请参考以下文章