Sublime Text 3 Sublimelinter phplint和php未找到?

34

我已经花了一个多小时的时间来使Sublimelinter工作。

现在我安装了以下这些包:

  • SublimeLinter
  • SublimeLinter-php
  • SublimeLinter-phplint

有人知道为什么它仍然无法检查我写的PHP吗?

我正在使用Windows系统,找不到任何与sublime 3和Windows相关的文档。

控制台显示:

SublimeLinter: cannot locate 'phplint' 

SublimeLinter: cannot locate 'php'

这不是关于编程的内容。 - Deepu
8
然而,这非常涉及程序员常用的一种软件工具,符合该网站的主题范围。我认为这个问题很具体、客观(非主观)、能够在该网站上得到回答并且有用。 - Andrew Cheong
2
“-1” 对于一个网站的问题来说有点严厉了吗?感谢您的回复 @acheong87 - Andy
5
好的问题,我相信它会帮助很多人。我曾经苦苦挣扎,也错过了上面提到的sublimelinter-php包。 - Robert Went
6个回答

57

我遇到了同样的问题,最终找到了使SublimeLinter在SublimeText 3中工作的方法。在安装了 SublimeLinterSublimeLinter-php 后,它一直告诉我 SublimeLinter: cannot locate 'php'。(毫不奇怪,PHP故意没有在我的 PATH 中)。

在将我的PHP安装路径添加到SublimeLinter用户设置(首选项->软件包设置-> SublimeLinter -> 设置 - 用户)中,并重新启动SublimeText后,现在一切都正常工作了。

这是相关部分:

"paths": {
    "linux": [],
    "osx": [],
    "windows": [
        "C:/Program Files (x86)/PHP/php-5.4/"
    ]
},

我不需要改变任何其他东西。


ST3 在我的用户设置中显示解析错误(尝试解析设置时出错:预期值为...)。我删除了空的 Linux 和 OSX 值,并成功保存,没有出现错误。感谢您的提示。 - wolfstevent
在Windows下,即使在Windows PATH变量中配置了php.exe路径,我仍需要将其放入linter配置中。 - kbtz
@wolfstevent:我再次查看了我的设置文件。似乎有几个括号要么是我忘记写的,要么是后来添加的。我编辑了原始答案,现在应该可以正常工作了。 - jmk
仍然显示“无lint错误”...即使设置已经修复,也没有进行linting。 - xkeshav
这很有帮助,即使在使用OSX时也是如此!谢谢! - Azirius

13

我在Windows上使用独立的SublimeLinter-php插件时遇到了相同的问题,它是为广泛重写的SublimeLinter 3编写的:

警告:php已停用,无法找到'php'

我也通过在SublimeLinter 3的“附加路径”用户设置中添加相关PATH(使用双反斜杠!)来解决这个问题(而不是直接编辑Windows的PATH环境变量等其他方法/选择),以便使可执行文件目录对SublimeLinter可用:

"paths": {
    "linux": [],
    "osx": [],
    "windows": [
    "C:\\xampplite\\php\\"
    ]
}

非常值得注意的是,您必须提供将被搜索的目录,而不是可执行文件的直接路径;我花了一些时间才明白这一点,因为在Sublime Text 2中相应的SublimeLinter设置恰恰包括了可执行文件;在我的情况下:

"sublimelinter_executable_map":
{
    "php": "C:\\xampplite\\php\\php.exe"
}

1
我只想强调Windows路径中双反斜杠的事实,因此应该是C:\而不是C://。这就是我挣扎的原因。谢谢Erwan。 - TeeJay

5
我也曾遇到这个问题,但现在解决了。 您需要安装phplint,您可以从http://www.icosaedro.it/phplint/download.html下载它。
打开zip文件,将phplint.exe和phpl.bat复制到php目录下(我的是c:/wamp/bin/php/php5.3.13/)。
您还需要将php的路径添加到Windows路径中。您可以右键单击“我的电脑”,然后选择属性->高级系统设置->环境变量->系统变量->路径。在末尾添加路径,使用;分隔。例如,我的路径是C:\wamp\bin\php\php5.3.13。如果您想要使用node进行js提示,则在此处将路径添加到node。
我认为现在会自动添加代码检查器,但您可以检查以下文件:
Preferences->Package Settings->SublimeLinter->Settings-User 我的文件看起来像这样(相关部分。如果该文件为空,请复制默认设置文件的内容)。
"lint_mode": "background",
    "linters": {
        "csslint": {
            "@disable": false,
            "args": [],
            "errors": "",
            "excludes": [],
            "ignore": "",
            "warnings": ""
        },
        "htmltidy": {
            "@disable": false,
            "args": [],
            "excludes": []
        },
        "jshint": {
            "@disable": false,
            "args": [],
            "excludes": []
        },
        "php": {
            "@disable": false,
            "args": [],
            "excludes": []
        },
        "phplint": {
            "@disable": false,
            "args": [],
            "excludes": []
        }
    },
    "mark_style": "outline",

如果你重启后,它应该开始进行代码检查。

1
我在下载的存档和cvs仓库中找不到任何phplint.exe文件,你确定吗? - snoob dogg

2

第一步:找到php可执行文件的位置(在Linux上使用命令“which php”)=>“/usr/bin/php” 第二步:按照以下步骤编辑Subimelinter包的用户设置。
第三步:使用以下代码编辑与php相关的linters对象:"linters": { "php": { "@disable": false, "args": [], "cmd": "/usr/bin/php", "excludes": [] } },

第四步:确保syntax_map对象中有"php":"php",如下所示:"syntax_map": { "html (django)": "html", "html (rails)": "html", "html 5": "html", "javascript (babel)": "javascript", "javascript (dom)": "javascript", "magicpython": "python", "php": "php", "python django": "python", "pythonimproved": "python" },

注意:在执行所有这些步骤之前,请确保您已安装sublimeter和sublimelinter-php包。


1

0
SublimeLinter3刚刚发布,是旧版本的完全重写。我还没有完全分析它们的机会,但新文档位于这里。我极力推荐您完全阅读它们,因为架构发生了巨大变化,而且设置与以前非常不同。

谢谢@MattDMo,我已经查看了文档,虽然很多内容似乎非常详尽,但我找不到有关实际连接linter的任何信息。 - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接