最近我开始使用 Emacs 作为 Python IDE,它不太直观...我现在遇到的问题是当使用 C-c C-c 评估缓冲区时如何将命令行参数传递给下级 python shell。感谢帮助。
这似乎并不容易实现;管理的劣质流程python.el
模块被设计为在多次调用中持续存在python-send-buffer
(和朋友)。我发现的一种解决方案是编写自己的函数来设置sys.argv
从下级进程中以编程方式:
(defun python-send-buffer-with-my-args (args)
(interactive "sPython arguments: ")
(let ((source-buffer (current-buffer)))
(with-temp-buffer
(insert "import sys; sys.argv = '''" args "'''.split()\n")
(insert-buffer-substring source-buffer)
(python-send-buffer))))
在你的中执行这个函数*scratch*
缓冲区和/或将其保存在您的.emacs
文件,然后,如果需要,将其绑定到方便的按键序列。C-c C-a
似乎没有被使用python-mode
,所以也许:
(global-set-key "\C-c\C-a" 'python-send-buffer-with-my-args)
该命令将提示您输入要使用的参数,然后将源缓冲区复制到临时缓冲区中,并在其前面添加一个设置的代码片段sys.argv
到您提供的参数列表,最后将调用python-send-buffer
.
上面的代码只会简单地分割您在空格上键入的字符串,因此如果您需要提供其中包含空格的参数,则需要更复杂的算法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)