我喜欢
我想要实现的是:
看起来应该很简单——Python模块在线程中侦听套接字。它在主线程中进行评估,并返回结果的
听起来很简单,类似这样的东西肯定已经存在了...... IPython 有
简而言之:
python-send-buffer
命令,但是我经常在应用程序中使用嵌入式的Python或通过自定义软件包管理系统启动Python (启动带有某些依赖项的Python)。换句话说,我不能只运行 "python" 并得到一个有用的Python实例(这是 python-send-buffer
所依赖的)。我想要实现的是:
- 在任何Python解释器(或允许您评估Python代码的应用程序)中,导入
magic_emacs_python_server.py
模块(根据需要附加到sys.path
) - 在emacs中,运行
magic-emacs-python-send-buffer
看起来应该很简单——Python模块在线程中侦听套接字。它在主线程中进行评估,并返回结果的
repr()
(或者捕获stdout/stderr,或者两者都有可能)。Emacs模块只需将文本发送到套接字,等待响应字符串,并在缓冲区中显示它。听起来很简单,类似这样的东西肯定已经存在了...... IPython 有
ipy_vimserver
,但这是错误的方式。还有 swank
,虽然它似乎非常针对Lisp,但有一个JavaScript后端看起来很像我想要的...... 不过搜索结果几乎没有什么,除了一些模糊的(可能是真实的)声明,SLIME在非Lisp语言中不起作用。简而言之:
- 是否存在一个项目将emacs缓冲区中的代码发送到现有的Python进程?
- 如果不存在,您会建议我如何编写这样的东西(不太熟悉elisp)——SWANK? IPython的服务器代码?从头开始编写简单的TCP服务器?
shell-command
将缓冲区内容传递到脚本中?这听起来是个不错的起点,谢谢! - dbr