Emacs:如何通过tramp编辑远程python文件时启动本地python解释器

Sha*_*nmu 5 emacs tramp python-mode

在Emacs上,当我C-c !在编辑远程python文件(使用tramp-plinkx:on windows)时启动python 时,python解释器在远程主机上启动.

有什么办法可以编辑远程python文件并启动本地python解释器吗?

我使用的是python-mode(不是默认的python.el)

Tre*_*son 1

python-mode通过 创建一个低级进程'make-comint,它使用'start-file-process,创建相对于变量 的进程'default-directory。因此,有几种方法可以对付这个野兽。

第一个是改为'default-directory本地化,例如:

(add-hook 'python-mode-hook (lambda () (setq default-directory "~"))
Run Code Online (Sandbox Code Playgroud)

这有一个缺点,C-x C-f现在的行为有所不同(从 开始~)。

另一种方法是更改'default-directory​​ just 的调用'py-shell,如下所示(未经测试):

(defadvice py-shell (around py-shell-different-directory activate)
  "set default-directory just for py-shell"
  (let ((default-directory "~"))
    ad-do-it))
Run Code Online (Sandbox Code Playgroud)