在Emacs';python模式';使用Python或IPython

在Emacs';python模式';使用Python或IPython,python,emacs,elisp,ipython,python-mode,Python,Emacs,Elisp,Ipython,Python Mode,在运行Emacs时,有没有办法强制一个新的pythonshell实例?当使用单独的工作目录(和不同的模块集)处理多个项目时,这将非常方便 任何调用pythonshell的尝试都只会调出当前实例。在打开新的pythonshell之前,您需要重命名原始的pythonshell。使用M-x重命名缓冲区重命名缓冲区对我不起作用,但是可以使用运行python的第三个参数 M-:(运行python nil nil t)RET 因为切换到当前缓冲区的绑定并没有真正的帮助 你可以把它反弹到更有用的东西上 (取消

在运行Emacs时,有没有办法强制一个新的
pythonshell实例?当使用单独的工作目录(和不同的模块集)处理多个项目时,这将非常方便


任何调用
pythonshell
的尝试都只会调出当前实例。

在打开新的pythonshell之前,您需要重命名原始的pythonshell。使用M-x
重命名缓冲区

重命名缓冲区对我不起作用,但是可以使用
运行python的第三个参数

M-:
(运行python nil nil t)
RET

因为切换到当前缓冲区的绑定并没有真正的帮助 你可以把它反弹到更有用的东西上

(取消运行python(&可选新建)
(交互式“P”)
(如果是新的
(运行python nil nil new)
(pop到缓冲区(进程缓冲区(python proc))t)))
(定义关键python模式映射(kbd“C-C-z”)‘我的运行python’)
并使用C-cC-z进行切换 到当前的python解释器和 C-uC-cC-z
切换到新的python解释器。

通过python.el使用
python模式时,默认为每个python缓冲区有一个python shell

但是,如果希望多个Python缓冲区共享同一个Python shell,则可以更改此默认行为。为此,在打开第一个Python缓冲区后,输入:

M-x python集过程
…记录在案:

将“python缓冲区”的默认值设置为与此缓冲区相对应。
如果当前缓冲区的本地值为“python buffer”,则设置
默认(全局)值。关联的Python进程是
在缓冲区中使用时从C-C-r等处获取输入的一种
没有“python缓冲区”的本地值。
然后,如果希望新的Python缓冲区使用自己的shell,请输入:

M-x设置变量python缓冲区[RET]nil[RET]

这样做之后,然后打开一个新的Python缓冲区,在输入
Python switch to Python
C-C-z
后,将为该缓冲区创建一个新的Python shell,谢谢。这很好,除了它是用于loveshack python的,我使用的是
python模式
。我想在某个时候切换,但现在我使用的是
iPython
,它似乎只与
python模式
兼容。