我喜歡python-send-buffer
命令,但是我經常使用嵌入在應用程序中的Python,或者通過自定義包管理系統啓動Python(以啓動具有某些依賴項的Python)。換句話說,我不能只運行「蟒蛇」,並得到一個有用的Python實例(東西python-send-buffer
依賴)將emacs緩衝區發送到任意Python進程
我想什麼實現的是:
-
任何Python解釋器
- (或應用程序,可以讓你評估Python代碼),導入一個
magic_emacs_python_server.py
模塊(追加sys.path
作爲必要條件薩利) - 在Emacs,運行
magic-emacs-python-send-buffer
這將評估在遠程Python實例的緩衝區。
看起來像它應該很簡單 - Python模塊在線程中監聽套接字。它在主線程中進行評估,並返回結果的repr()
(或者捕獲stdout/stderr,或者兩者)。 emacs模塊只會將文本發送到套接字,等待一個字符串作爲響應,並將其顯示在緩衝區中。
聽起來這麼簡單,這樣的事情必須已經存在... IPython有ipy_vimserver
,但這是錯誤的方法。也有swank
,雖然它看起來很Lisp特定,但有a Javascript backend,它看起來非常像我想要的...但搜索幾乎找不到任何東西,除了一些模糊(可能是真的)聲稱SLIME不能很好地與非-Lisp語言
簡而言之:
- 做一個項目存在從一個Emacs發送代碼緩存到現有的Python程序?
- 如果不是,你會如何推薦我寫這樣的東西(不是很熟悉elisp) - SWANK? IPython的服務器代碼?簡單的TCP服務器從頭開始?
所以用'殼command`得到緩衝區內容放入腳本中?這聽起來像是一個很好的起點,謝謝! – dbr 2011-01-31 12:08:50