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