我一直在玩Node的REPL。我認爲通過Socket使其可用非常酷,通過Telnet/puTTY /任意連接到它,並且可以即時調試我的服務器。節點JS REPL,套接字和Telnet - Tab完成,箭頭鍵等
我曾經在這裏找到了例子: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);
OK,太棒了!現在我可以使用Telnet連接到端口5001並與REPL交互。但是,我遇到了控制字符問題(即Tab,Ctrl + C,向上箭頭,向下箭頭等)。我怎樣才能讓這些工作?例如,如果我使用telnet連接,輸入「1 + 1 <Enter>」,我得到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
很整潔!
你可以使用-c -f開關模仿tab完成:http://blog.lishman.com/2008/04/rlwrap.html顯然你需要一個Node.js的關鍵字列表 – booyaa 2013-06-13 08:22:18