2013-08-29 5 views
18

引数なしでコマンドラインからnodeを実行すると、対話シェルが入力されます。いくつかのコマンドを実行し、ノードを終了し、ノードを再起動すると、上向きの矢印は何もしません(前のコマンドをスクロールしたいと思います)。セッション間にノードのコマンドライン履歴を保存する方法はありますか?

ノードを対話的に呼び出す方法はありますか?古いコマンドを覚えていますか?

+0

これまでに何を試しましたか? [node-shell](https://github.com/wdavidw/node-shell)には、多くの機能が搭載されているようです。 – TC1

答えて

22

rlwrapを使用して、node.js REPLコマンドを履歴ファイルに格納することができます。

まず、rlwrapをインストールします(apt-getやbrewなどのパッケージマネージャで簡単に実行できます)。

次にノードの別名を追加します。私はOSX上だ

alias node='env NODE_NO_READLINE=1 rlwrap node' 

ので、私は私の~/.bash_profileファイルにそのエイリアスを追加し、source ~/.bash_profileを経由して、私のbash_profileファイルをリロードするだろう...と私は行ってもいいよ!

希望すると便利です。

+0

私は(誤った)コマンド: 'rlwrap node'を使用していましたが、なぜノードREPLが自分の履歴を保存していないのか不満を抱いていました。これは私の問題を解決しました! –

+3

rlwrapはかなりのノードの複製色を緩めますが。 – dentarg

+0

また、タブ完成 – Daiwei

15

私は問題を解決素敵な小さなプロジェクトで、見つかった:

https://www.npmjs.org/package/repl.history

は、NPM(npm install -g repl.history) を使用してインストールし、コマンドラインでrepl.historyを実行します。

+0

このメソッドは、レプリカの色とタブ補完を保持します。わーい! –

+0

@SamH編集は、元の回答を変更または拡張するものではありません。文法、スペル、書式などを明確にすることのみを目的としています。編集した投稿の所有者ではなく、編集者がコミュニティによって承認されていることがあります。提案がある場合、それらはコメントまたは自分の答えに属します。参照してください:http://meta.stackexchange.com/questions/11474/what-is-the-etiquette-for-modifying-posts –

+0

クール、ありがとう。 :) –

3

私はdreampulseとbadsyntaxの両方の回答が好きです。 repl.historyに加えて私の.bash_profileに加えて、ノードの対話型シェルでのコマンドヒストリと構文強調表示ですが、(スクリプトを実行するために)引数で呼び出されたときにreplをバイパスします。

function node(){ 
    if test "$#" -lt 1; then repl.history 
    else env node [email protected]; fi; } 

今すぐあなたのシェルまたは実行. ~/.bash_profileを再起動して、あなたが行ってもいいです:

npm install -g repl.history 

その後追加して、あなたの〜/ .bash_profileを編集します。今repl.historyを開きます

$ node 

を実行している


対話型シェルをnodejs、そして予想通り

$ node program.js [...] 

は、ノードとprogram.jsを実行します。

5

io.js 2.0には、persistent REPL historyのサポートが含まれています。

env NODE_REPL_HISTORY_FILE=$HOME/.node_history iojs 

履歴の最大長はio.js 5.0+でいるデフォルト1000

に、NODE_REPL_HISTORY_SIZEで設定することができ、REPL履歴は(デフォルトで有効になっており、NODE_REPL_HISTORY_FILENODE_REPL_HISTORYを支持して非難されていますデフォルト:~/.node_repl_history)。

+0

@badsyntaxのようなエイリアスを作った: 'alias iojs = 'env NODE_REPL_HISTORY_FILE = $ HOME/.node_history iojs'' –

関連する問題