在保存文件后,我一直试图创建一个自定义的shell命令来运行。该命令应在文件的相同位置运行。
我已经根据用户的偏好提出了这个建议,但是没有成功。
"on_post_save_user": [
{
"cmd": ["shell command"]
}
。
答案 0 :(得分:0)
根据您的问题,我将假设您使用Hooks软件包能够基于事件运行任意命令。如果尚未安装该软件包,则也需要这样做。 Sublime核心中没有提供此处讨论的项目。
此程序包可以执行所需的任意命令,但是请注意,这意味着 Sublime 命令;这是Sublime核心或已安装的软件包和插件提供的命令。因此,包含shell命令的名称将无效。 Sublime默默地忽略了您告诉它运行的命令,而该命令并不知道。
也就是说,exec
命令可直接在任何Sublime安装中使用,并且可以执行您告诉它的任何任意shell命令或程序。例如,此命令用于执行build system。
实际上,默认情况下,构建系统中可用的大多数键(不包括告诉Sublime何时应应用构建的键)实际上是arguments to the exec command,它们告诉执行什么。
您特别感兴趣的是shell_cmd
参数,它接受您可能在命令提示符中输入的任意命令并执行它。
根据相关软件包的文档,所需的配置选项如下:
"on_post_save_user": [
{
// Runs `exec` command
"command": "exec",
// Invokes `exec` with `shell_cmd="google-chrome"`
"args": {
"shell_cmd": "google-chrome"
},
// Runs `exec` via `window.run_command`
"scope": "window"
}
]
需要注意的是,我没有使用这个特定的程序包,也无法验证这是否是必需的,所以这告诉程序包运行exec
命令(实际上是一个{{ 1}}命令),告诉它执行window
。
google-chrome
可能需要其他选项才能执行所需的操作,具体取决于所执行的操作。从软件包文档中还不清楚它是否支持exec
之类的标准构建系统变量来表示当前文件,这是否可能是一个问题。
还请注意,由于$file
命令是执行构建系统的命令,因此,如果您在用户首选项中打开了exec
(默认情况下,除非您将其关闭,否则默认为打开),因此{{1 }}命令将在窗口底部打开一个面板,告诉您正在运行的命令正在执行的操作。