我正在尝试使用 flymake 来运行 pyflakes,正如这里所建议的那样
这适用于本地文件,几乎适用于远程文件,但需要稍作调整,但我遇到了一个问题,即 flymake/pyflakes 在运行时“修改”缓冲区(尽管实际上似乎没有任何变化),它呈现在实践中它有点没用(例如保存文件运行flymake,它会立即再次修改缓冲区)。
这是我几乎让它工作的方法:
- 在远程盒子上安装了 pyflakes。
- 自定义我的
tramp-remote-process-environment
变量,以便可以在其 PATH 中找到 pyflakes - 使用了上面 wiki 链接中的代码变体。显然,我排除了为远程缓冲区禁用它的检查。此外,该
(when (load "flymake" t) ...)
构造似乎没有像我预期的那样工作,但我并不太担心。 - 重新定义(出于测试目的——如果可以使其工作,建议应该没问题)该
flymake-start-syntax-check-process
函数,以便它使用start-file-process
(与tramp一起使用)而不是start-process
(不使用)。
在处理本地文件时,#4 中的更改似乎不会导致任何问题,但是尽管这现在使 flymake 能够为远程文件运行远程 pyflakes(错误按预期突出显示),但在这种情况下,缓冲区已被“修改”每当flymake运行时。
我猜想start-file-process
,对于远程进程,会导致一些额外的返回值/数据,而这些返回值/数据不会出现在本地进程中。
有没有人有任何见解/建议?
- Ubuntu 上的 Emacs 23.1 和 23.2
- Python 2.4.6
- Pyflakes 0.4.0(通过easy_install)