错误问题
已经使用 Emacs 几年了。最近决定尝试 Prelude 版本(链接到 prelude)。安装顺利(在带有 Cygwin 的 Win7 上),但几天来无法使用 php 错误检查。我想让 php 错误检查与 Flycheck 一起工作。它现在对我不起作用。
目前,当我破坏 php 脚本时,flycheck.el (@ln2551)返回 2 个错误:
Checker php returned non-zero exit code 1, but no errors from output:
Could not open input file: /tmp/flycheck4728Btc/myPhpFile.php
Checker definition probably flawed.
Checker php-phpcs returned non-zero exit code 1, but no errors from output:
Could not open input file: /cygdrive/c/xampp/php/phpcs
Checker definition probably flawed.
调试信息
1)。/tmp
Flycheck 在 Cygwin 根目录中写入缓冲区副本。见flycheck.el (@ln800) ):这个文件存在并且是一个确认可读的缓冲区副本;它的文件权限没有问题(无论是 chmod 777 还是 700,都会出现同样的错误)。
2)。Phpcs 位于 c:/xampp/php/phpcs 并且可以从命令行(cmd.exe 和 cygwin bash)调用,无论有无 c:/ 路径;但不适用于 cygdrive 路径。[这不起作用 $/cydrive/c/xampp/php/phpcs -h(带有或不带有 .bat 扩展名)。] 我还确认了 phpcs 的良好安装(并且它可以从命令行工作),并且有这里不是文件权限问题。我已根据flycheck.el @ln2895-2903flychech-phpcs-standard
将变量设置为,但没有找到抛出错误的条件。c:/xampp/php/phpcs
[注意:当我尝试重命名 phpcs 文件并指定 phpcs.bat 时,此错误确实消失了,但我不确定是否找到了检查器,因为写入 tmp 文件错误仍然阻碍了任何结果。此外,这打破了我对 phpcs 命令的命令行使用。]
可以肯定的是,这是我的php -v:
$ php -v
PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
这是我的phpcs版本:
$ phpcs --version
PHP_CodeSniffer version 1.3.3 (stable) by Squiz Pty Ltd. (http://www.squiz.net)
在我的 .bash_profile 中
有这个别名:alias phpcs="c:/xampp/php/phpcs"
c:\xampp\php
在我的PATH上
研究
我一直在浏览 phpcs、cygwin 和 flycheck.el,包括自定义 flycheck-phpcs-standard 行的说明,但在这个问题上没有任何进展。
我不确定这是否与flycheck.el@800-824 (defun flycheck-temp-file-system (filename prefix)
上的评论有关。这些是关于使用 Emacs 解决压缩错误的评论。反正,
如何解决这个问题?
有什么意见或想法可以进一步测试吗?有人用 Cygwin 在 win7 上进行 flycheck 吗?它是操作系统编译问题吗?某处脚本中的目录路径?