動的言語の使用に慣れてきたら、repl でいくつかの単純なアイデアを検証するためにさまざまな試みを行うことに非常に熱心です。 Pythonのpython、rubyのirb、phpのphp -a、nodejsのnodeなど、ほとんどの動的言語にはreplが組み込まれており、haskellのような静的言語にもrepl:ghciがあります。 ただ、これらの組み込み Repl は比較的シンプルなので、より良い エクスペリエンスを提供するための代替ツール (構文の強調表示、インスタント出力、シンプルなコード補完、プロンプトなど) がいくつか存在します。
php デフォルトは php -a ですが、これは機能が不十分です。コンテンツを出力するにはエコーする必要があります。 boris はより良い代替手段であり、echo を入力せずに直接出力し、基本的な構文の強調表示機能もあります (出力のみが強調表示され、入力は強調表示されません)。 bolis にはコード補完がありません。
MAC に付属の php には必要なコンポーネントがいくつか欠けているため、boris を使用できなくなります。 brew: brew install php で php を使用することをお勧めします。
[1] boris> class A {[1] *> function t(){[1] *> return "test";[1] *> }[1] *> }// NULL[2] boris> $a = new A;// object(A)(//// )[3] boris> $a->t();// 'test'
Python 自体のバージョンも使いにくいですが、Python には php よりも多くの代替ツールがあり、非常に強力で、Python の repl だけでなく単独でツールとして使用できるほど強力です。
bpython は非常に優れた代替手段であり、適切な強調表示だけでなく、タブ キーのスマート補完やプロンプトも提供します。単純な実験をしたいだけの場合は、Python ではなく bpython を使用することをお勧めします。
bpython
ipython のターミナルは、構文の強調表示がないだけでなく、コード プロンプトも非常に一般的です 1 。ただし、ipython はまったく異なるツールです。詳細については、公式 Web サイトを参照してください。これは、MATLAB とよく似た機能を備えた強力な Python IDE です。 。結局のところ、ポスドクを採用できるプロジェクトは決してプール内にあるものだけではありません 2 。
ipython ノートブックは jupyter をベースにしており、豊富な機能を備えています。 Jupyter は現在、bash、haskell、julia、python、r、ruby、および scala をサポートしています。お試しください
jupyter
最近の 4.1 アップデートでは、コマンド パレットなどの崇高なテキストやアトム、より強力な検索と置換など、最新のエディターの機能がいくつか提供されています。詳細については、上記のブログ投稿を参照してください。
Ruby に付属する irb のデフォルト機能は非常に単純ですが、irbrc が設定された後は、一般的なハイライト機能やプロンプト機能も実装できます。ただし、pry は Ruby の世界でよく使用されます。pry のデフォルト設定で十分です。pry のスタイルと機能を完全にカスタマイズすることもできます。 pry はいくつかの便利なプラグインを提供します。 pry-theme のようなプロジェクトもあります。ルビーの世界における美の追求は常に比類のないものです。
pry-rails-console
nodejs 組み込みノードに加えて、サードパーティの Repl 拡張機能もいくつかあります。ネッシュは最高の一人です。ノードの世界は最近急速に発展しており、開発者は非常に熱心で、プラグインやライブラリが際限なく登場していると言わざるを得ません。 nesh プラグイン
npm install -g nesh# Run neshnesh# Run nesh with CoffeeScriptnesh -c# Run nesh with ES6 through Babelnesh -b
i.js は ipython からインスピレーションを得たプロジェクトですが、jupyter に基づいたものではありません。興味のある方は試してみると良いかもしれません。
i.js のスクリーンショット
しかし、Linux の世界には、sqlite3 や ftp など、コマンドを表示するという基本的な機能さえ提供していない、非常に粗雑なコマンド ライン ツールがまだたくさんあります。上矢印キーで履歴を削除すると、しばらく調子が悪くなります。交換するにはどうすればよいですか?
rlwrap はこの問題を解決するツールです。
[0] % sqlite3 production.sqlite3SQLite version 3.8.4.1 2014-03-11 15:27:36Enter ".help" for usage hints.sqlite> .tablesalbums images usersarticles schema_migrationssqlite> ^[[A^[[A^[[A^[[A
[1] % rlwrap sqlite3 production.sqlite3SQLite version 3.8.4.1 2014-03-11 15:27:36Enter ".help" for usage hints.sqlite> .tablesalbums images usersarticles schema_migrationssqlite> .tables
rlwrap を使用すると、矢印キーが利用可能になります。