【问题标题】:Emacs: starting a new inferior python shell when evaluating bufferEmacs:在评估缓冲区时启动一个新的劣质 python shell
【发布时间】:2018-04-17 19:36:09
【问题描述】:

我正在使用 vanilla Emacs 23 开发各种 python 程序,当我评估一个缓冲区时,一个劣质的 python shell 按预期启动并且脚本运行良好......

这一切都很好,但是,当处理多个(不相关的)项目时,使用相同的 python 实例,有没有办法可以为每个源文件创建一个新的劣质 python shell?

谢谢

【问题讨论】:

  • 你使用什么模式?
  • 我使用的是默认的python.el...

标签: python emacs


【解决方案1】:

我还没有完全测试过这个,但我认为这会起作用:

(add-hook 'python-mode-hook 
          (lambda ()
            (setq-local python-shell-buffer-name 
                        (format "Python %s" (buffer-file-name)))))

这应该会导致每个缓冲区在启动 python shell 时使用不同的缓冲区名称。每个具有不同名称的 python shell 缓冲区都应该有自己的下级 python 进程。

【讨论】:

  • 我刚刚尝试过这个(在 scratch 中评估),似乎没有达到预期的效果。欢迎进行独立测试,看看它是否只是我,lisp 真的不是我的事......谢谢......
  • 我对此进行了简短的测试,它似乎对我有用,尽管我使用的是 Emacs 26,所以那里可能会有所不同。确保在测试时你做了一些事情来使钩子运行;例如如果你有打开的 Python 缓冲区,你可以关闭和打开 python-mode,或者关闭并重新打开文件,或者只是重新启动 emacs。
  • 我在家里试过这个(在更高版本的 emacs 上,它没有问题,但是,在 Emacs 23.1.1 上,它似乎没有相同的效果,并且相同的运行实例是敲击时使用 C-c C-c...
【解决方案2】:

当我在 emacs 中需要一个新的劣质 python shell 并想要指定哪些 python 缓冲区向每个 shell 发送代码时,我执行以下操作。这给了我更多的控制权。

  1. 使用 M-x rename-buffer 命令将现有的劣质 shell 缓冲区名称设置为 *Python-otherbuff* 之类的名称

  2. (setq-local python-shell-buffer-name "Python-otherbuff") 在应该与旧的劣质 shell 交互的每个缓冲区中。

  3. 使用常用命令创建一个新的低级 python shell(例如 C-c C-p),它将创建一个名为 *Python* 的缓冲区,默认情况下所有 python 缓冲区都将与之交互。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多