エラーに関する問題
Emacsを数年間使用しています。最近、Prelude バージョン(prelude へのリンク)を試してみることにしました。インストールは (Cygwin を使用した Win7 で) スムーズに進みましたが、数日間、php エラー チェックを使用できませんでした。Flycheck で動作するように PHP エラー チェックを取得したいと考えています。現在、私にとっては機能していません。
現在、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)。Flycheck は Cygwin ルート/tmp
ディレクトリにバッファ コピーを書き込みます。flycheck.el (@ln800)を参照してください): このファイルは存在し、確認済みの読み取り可能なバッファー コピーです。ファイルのアクセス許可に問題はありません (chmod 777 または 700 のどちらでも同じエラー)。
2)。Phpcs は c:/xampp/php/phpcs にあり、c:/ パスの有無にかかわらず、コマンド ライン (cmd.exe および cygwin bash) から呼び出すことができます。ただし、cygdrive パスでは機能しません。[これは $/cydrive/c/xampp/php/phpcs -h (.bat 拡張子の有無にかかわらず) では機能しません。] また、phpcs の適切なインストール (およびコマンド ラインからの機能) を確認しました。ここではファイル許可の問題ではありません。flycheck.el @ ln2895-2903 に従って変数flychech-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上
リサーチ
flycheck-phpcs-standard 行をカスタマイズする手順を含め、phpcs、cygwin、flycheck.el を調べましたが、この問題については何も進展していません。
これがflycheck.el@800-824 のコメントと関係があるかどうかはわかり(defun flycheck-temp-file-system (filename prefix)
ません。これらは、Emacs の圧縮バグを回避するためのハッキングに関するコメントです。ともかく、
これを修正する方法は?
これをさらにテストするためのコメントやアイデアはありますか? Cygwinを使用してwin7でフライチェックを行っている人はいますか? それはオペレーティングシステムのコンパイルの問題ですか? スクリプトのディレクトリ パスはどこにありますか?