2011-01-27 8 views
4

私はpython-send-bufferコマンドが好きですが、私は非常に頻繁にアプリケーションに埋め込まれたPythonを使うか、カスタムパッケージ管理システム(特定の依存関係を持つPythonを起動するため)でPythonを起動します。ただ「パイソン」を実行して、有用なPythonのインスタンスを取得することはできません(python-send-bufferはに依存している何か)emacsバッファを任意のPythonプロセスに送る

私は何を達成したいことはある:あなたがすることを可能にする任意のPythonインタプリタ(またはアプリケーションで

  • Pythonコードを評価する)、magic_emacs_python_server.pyモジュールをインポートします(sys.pathに追加する必要があります) SARY)Emacsで
  • 、これはリモートPythonのインスタンス内のバッファを評価しますmagic-emacs-python-send-buffer

を実行します。

非常にシンプルであるように思えます - Pythonモジュールはスレッド上のソケットをリッスンします。これはメインスレッドで評価され、結果のrepr()を返します(または、stdout/stderrをキャプチャするか、あるいはその両方かもしれません)。 emacsモジュールは、ソケットにテキストを送信し、応答して文字列を待ってバッファに表示します。

このような単純なものはすでに存在していなければなりません... IPythonはipy_vimserverですが、これは間違った方法です。がありますが、それは非常にLisp特有のようですが、a Javascript backendが私の望むものと非常によく似ていますが、SLIMEが非正常ではうまく動作しないという曖昧な要するに-Lisp言語

  • は、既存のPythonプロセスにEmacsバッファからコードを送信するためにプロジェクトが存在していますか?
  • もしそうでなければ、私はそのようなことを書くことを勧めます(elispにはあまり慣れていない) - スワンク? IPythonのサーバーコードですか?シンプルなTCPサーバーを最初から?

答えて

2

comintは、このようなもののためのインフラストラクチャのほとんどを提供します。 thisまたはthis

ようですが、簡単にsend-regionタイプのコマンドを実装する事をcomint-send-string提供し、コマンドを実行することができます良い例の束が、あります。

dbr/remoterepl on Githubは、私が質問で説明したものの概念の原点です。

それはポーランドのあらゆる種類を欠いたが、それは主に動作します - あなたは、ターゲットインタプリタでreplify.pyモジュールをインポートし、その後、client.py

1

shell-commandあなたはあなたが探しているものを教えてください?ラッパースクリプトを記述するか、#!sys.pathを適切に調整することができます。

+0

に愚かなハードコードされたパスを固定した後emacs-remote-repl.elを評価するので、取得するには、 'シェルcommand'を使用スクリプトの内容をバッファに入れますか?ありがとうございました! – dbr

関連する問題