【问题标题】:How do I extend the $PATH that Sublime Text 2 uses?如何扩展 Sublime Text 2 使用的 $PATH?
【发布时间】:2014-09-22 20:31:00
【问题描述】:

我刚刚安装了 Sublime-jshint(以及必要的 node.js + jshint),但是当我尝试从 ST2 中调用 JSHint 时出现此错误:

[Errno 2] No such file or directory
[cmd:  [u'jshint', u'PATH-TO-THE-JS-FILE-I-AM-LINTING', u'--reporter', u'/home/cmg/.config/sublime-text-2/Packages/JSHint/reporter.js']]
[dir:  DIR-MY-JS-FILE-IS-IN]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/cmg/bin]
[Finished]

给定路径中的最后一项在我的用户 (cmg) 的主目录中,所以它是自定义的不知何故...但我不记得是怎么做的,所以我不记得知道如何添加我需要的目录 (~/node_modules/.bin)。

我已将它添加到我的 shell 中的 $PATH(通过 .bashrc 和 .bash_profile),但 ST2 没有选择它。

(我使用的是 Ubuntu 14.04。我通过 Google 找到的关于这个主题的所有可用内容要么是特定于 OS X 的,要么与 ST 的构建系统相关)。

【问题讨论】:

    标签: sublimetext2 sublimetext ubuntu-14.04 jshint


    【解决方案1】:

    基本上,jshint 包内部使用的exec 命令允许您设置/扩展生成的子进程的路径。 (docs)

    这个包实际上在 OSX 上使用了这个路径参数,但是它是硬编码的(当我重写命令时我对此感到部分内疚,因为它以前很糟糕)。它应该允许一个设置来指定你的 jshint 可执行文件的路径,所以我建议你为此创建一个问题。

    我不知道为什么 ST 不从其他地方获取您的 PATH,因为我对此几乎没有经验。

    【讨论】:

    • 谢谢。有人在 IRC 频道中链接了这个主题。不过我不主动浏览问题。
    【解决方案2】:

    在 Sublime 中打开 /etc/profile(使用 sudo)并在最底部添加以下行:

    export PATH=/home/cmg/node_modules/.bin:$PATH
    

    并保存文件。完全重启,你的PATH应该会更新。

    【讨论】:

    • 谢谢。我的意思是在问题中指出——目录在我的 $PATH 中,但 ST2 没有选择它。
    • 另外——如果我通过subl 命令启动ST,它会从我的shell 中获取$PATH。但我通常通过 Unity 启动器或 Kupfer 启动它。
    • 还设置桌面快捷方式的路径:stackoverflow.com/questions/25994666/…
    • @PaulBissex 见我上面的编辑。为了修改从 Unity(或 Kupfer 或您最喜欢的启动器)启动的 GUI 应用程序使用的 PATH,您需要修改系统的 PATH。 /etc/profile 可能是放置它的最佳位置,或者(我从这里记忆,我不在 Ubuntu ATM 上)您可以在 /etc/profile.d 中创建一个新文件。您需要超级用户权限才能执行此操作,因此只需使用 sudo subl ... 从您最喜欢的终端模拟器启动 Sublime。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2016-03-26
    • 2012-01-24
    • 1970-01-01
    • 2013-08-10
    • 2012-05-21
    相关资源
    最近更新 更多