2011-12-27 12 views
3

私はNodeのREPLで遊んでいます。私はそれがソケット経由で利用可能にし、Telnet/puTTY/whatever経由で接続し、オンザフライで私のサーバをデバッグするのはかなりクールだと思いました。 ...ノードJS REPL、ソケット、およびTelnet - タブ補完、矢印キーなど

net.createServer(function (socket) { 
    var cmd = repl.start(">", socket); 
    //... some other stuff here.... not important 
}).listen(5001); 

OKを基本的にはこのようになりますhttp://nodejs.org/docs/latest/api/repl.htmlを、素晴らしい:

は、私がここで見つける例を使用しました!これで、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 
... 

EDIT:私はまた、または関連してもしなくてもよい、この問題、発見 - 2がArrow keys turn into control characters in Telnet

EDIT:うーん... rlwrapは私の問題のほとんどを解決するためのようだ:

$ rlwrap telnet localhost 6634 

ローカル変数とグローバル変数のタブ補完だけが有効ですが、これは私がなくても有効です。私は主にコマンド履歴に関心を持っていました。 rlwrapはきちんとしています!

答えて

1

上記を参照してください。

rlwrap telnet localhost 6634

+0

あなたは-c -fスイッチを使用してタブ補完を模倣することができます:http://blog.lishman.com/2008/04/rlwrap.html明らかにあなたは、Node.jsのキーワードリストが必要になります – booyaa

関連する問題