私はScalaの開発をEmacsでやっていますが、時々、REPLを使ってコードの断片をテストしたり、今書いたコードを読み込んでテストしたりしています。私はScala 2.9.1を使用しています。私は、REPLをターミナル・バッファにオープンすると、事態が大きく壊れていることに気付きました。特に、現在の行から文字を削除することはできず、現在の行でカーソルを後ろに移動することはできません。これは私が何かミスタイプを入力すると、非常にイライラしています。私はコマンドを新たに開始しなければなりません。 Emacsの下でScala REPLを使用して誰かがこの問題を抱えているのかどうか、誰かが潜在的な解決策を持っているのだろうかと思っていました。Scala REPL in Emacs
答えて
私はrlwrap(readline wrapper)がemacsのansi-termとscalaでうまくいきます。 "rlwrap scala"を呼び出すだけで、通常のbash行編集と履歴が正しく動作します。ボーナスとして、履歴は複数のスカラ呼び出しにまたがるため、Scala REPLを終了した後に入力したものすべてを失うことはありません。
rlwrapが機能しない場合は、ansi-term(デフォルトではCx Cj)の行モードに切り替えるだけで、emacs形式の編集を行に使用できますが、シェルの歴史や完了。
Ensimeについてはすでに言及されていますので、セットアップに関わらない場合は素晴らしいオプションとして2番目に表示されます。
チップのおかげで。これは私のためにかなりうまくいくようです。実際に、私はコマンド履歴を与えるので、私はEnsimeのアプローチよりもrlwrapのアプローチが好きです。今のところ、rlwrapアプローチを使ってEmacs経由でREPLを呼び出す唯一の残っている制限は、タブ補完を使用できないことです。 – nomad
emacsを使ってREPLでタブ補完をどうやって手に入れましたか? – CodeKingPlusPlus
ENSIMEとfollow instructionsをインストールすることができます。 REPLを呼び出す方法はわかりませんが、REPLはENSIMEの動作から呼び出されます(カーソルを後ろに移動してシンボルを削除することができます)。
チップをありがとう。 EnsimeからREPLを呼び出すように見えますが、この問題は解決しますが、いくつか紹介します。特に、Ensimeを介して呼び出されるREPLはコマンド履歴を持たず、タブ補完ができないように見えます。 – nomad
ENSIMEの+1、ENSIMEは涼しい –
- 1. Scala REPL in Gradle
- 2. emacs cider clear REPL buffer
- 3. ScalaのREPL
- 4. Clojure&ClojureScript REPL(emacs + cider + boot)
- 5. settings.maxPrintString for Scala 2.9 REPL
- 6. Scala REPL:リモートMavenリポジトリをScala REPLクラスパスに追加するには?
- 7. Scala REPL:関数型の検索方法は? ScalaのREPLで
- 8. ScalaのREPL追加ジャー
- 9. scala replの設定とログ
- 10. NPE in scala Array.fill
- 11. bpython in Emacs
- 12. FoldRight in Laziness in scala
- 13. Scala - REPL環境の初期化
- 14. バッククォートと `in emacs lisp
- 15. Qt Creator in Emacs keybind
- 16. Scalaでの動作のオーバーロードREPL
- 17. Scala REPLが印刷されないRange
- 18. Scalaからシェルコマンドを実行するREPL
- 19. Scala REPL依存関係の削除
- 20. FP LCM in scala in 1 line
- 21. Easypost in scala
- 22. コンビネータ/:in scala
- 23. .with alternative in scala
- 24. Brainfuckコンパイラin scala
- 25. observablemap in scala
- 26. Java IO in Scala
- 27. ScalaのREPLからのREPL:コマンドの構文が正しくありません
- 28. Scala REPL:特定のコマンドに関するドキュメントはどこにありますか? ScalaのREPLで
- 29. scala replを初期化するときにカスタムオブジェクトをscala replに挿入する方法
- 30. CygwinのOpam in Windows emacs
Emacs内でREPLをどのように起動していますか? – leedm777
私はansi-termで新しいバッファを開きます。次に、そのターミナルバッファーで、私は直接 "scala"を呼び出すか、sbt consoleを使ってREPLを開始します。いずれにしても、この問題が発生するようです。 – nomad
シェルで新しいバッファを開き、シェルからスカラまたはsbtを開始する方がよいかもしれません。 – leedm777