【问题标题】:Node JS REPL, Sockets, and Telnet - Tab Completion, Arrow Keys, etcNode JS REPL、Sockets 和 Telnet - Tab 补全、箭头键等
【发布时间】: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”,我得到 2。但是,当我点击“”时,我得到“...”,好像REPL 正在等待我完成命令。但是,实际上,我想做的只是查看我执行的最后一个命令。我知道 Telnet 喜欢在输入换行符之前保持其输出,但有什么方法可以避免这种情况吗?

$ 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很干净!

【问题讨论】:

    标签: node.js telnet read-eval-print-loop control-characters


    【解决方案1】:

    见上文。

    rlwrap telnet localhost 6634

    【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 2013-12-26
    • 2011-09-22
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多