0

我有一个 shell 脚本,其中定义了各种函数,并且通过在 bash_profile 中包含以下行,所有这些函数都可以通过终端访问:source ~/hcom-env/conf/sys/hcom-profile

但是,当我尝试在崇高的构建系统中使用这些功能之一时,我得到了错误[Errno 2] No such file or directory

我已经尝试使用本文http://robdodson.me/blog/2012/05/14/hacking-the-path-variable-in-sublime-text/中的建议(包括安装 shell turtlestein 并添加/Users/me/hcom-env/conf/sys/hcom-profile/到 PATH我在我的path.py文件中使用)但仍然无法正常工作。

4

3 回答 3

1

Shell 变量和函数,包括那些在.bash_profile和其他地方定义的变量和函数,对 ST2 不可用,因为它不在 bash 中运行。它是它自己的独立程序 - 类似于 Firefox(例如)无法读取您的$PATH变量。

要使您的自定义函数、变量等可用于您的构建系统,您必须创建一个单独的构建脚本以作为您的构建系统运行:

{
    "cmd": ["ST2_build.sh", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

然后在ST2_build.sh顶部有以下内容:

#!/bin/bash

if [ -f ~/hcom-env/conf/sys/hcom-profile]; then
    source ~/hcom-env/conf/sys/hcom-profile
fi

# now I can use my cool functions...
myfunc($1)
于 2013-06-13T19:18:44.630 回答
1

Modification of path for shell turtelstein -- Shell Turtlestein.sublime-settings

{
    // Override these in your own
    // `Packages/User/Shell Turtlestein.sublime-settings` file.
    "surround_cmd": ["", ""],
    "exec_args": {"path": "/usr/texbin:/usr/local/bin:$PATH"},
    "cmd_settings": [],
    "input_widget": {
        // overridden for silly non-unixy OSes
        "syntax": "Packages/ShellScript/Shell-Unix-Generic.tmLanguage"
    }
}
于 2013-06-14T07:03:53.073 回答
0

我用过这个,效果很好。

{
    "cmd"       : ["bash", "$file"],
    "selector"  : "source.shell"
}
于 2021-05-27T15:19:45.883 回答