3

Pythonで作業するとき、repl私はしばしば複数行のコードを編集する必要があります。

だから私はimport osそれを使用しますos.system("notepad npad.py")

clojureで私は最初に走ります(use '[clojure.java.shell :only [sh]])

それから私は走ります(sh "notepad" "jpad.clj")

これによりメモ帳が起動しますが、clojurereplがハングするため、便利な方法ではありません。つまり、メモ帳を閉じるまで、にコードを入力できず、repl両方を開いたままにしておきたいのです。

私はclojureなしでメモ帳を簡単に開くことができることを知っているので、それは大したことではありません。しかし、clojureがハングせずに外部プロセスを開始する方法はありますか?

4

2 に答える 2

5

future作業をバックグラウンドで実行したままにするのに便利な方法であり、後でプロセスを簡単に確認できます。

user> (def notepad-process (future (sh "emacs" "jpad.clj")))
#'user/notepad-process

しばらくの間ファイルを編集し、終了コードが必要な場合は後でプロセスを確認します。

user> @notepad-process
{:exit 0, :out "", :err ""} 
于 2013-02-21T19:46:35.103 に答える
1

shメモ帳の終了コードを待つのではなく、すぐに戻りたいようです。新しいスレッドでsh!元のコマンドを実行するマクロなどを作成するのはどうですか?shこれをREPLの便宜のためだけに使用している場合は、まったく問題ありません。

編集

アーサーの答えはより良く、より多くのクロジュリアンです-それに合わせてください。

于 2013-02-21T19:36:26.007 に答える