Tau*_*i28 5 javascript node.js sublimetext2
我希望能够使用一个快捷方式来运行和终止节点进程,包括根据需要显示和隐藏构建窗口.
我按ctrl + B:
我ctrl + B再次按下:
我还需要发送kill信号,以便我可以在节点应用程序中读取它并在退出之前执行几个操作.
目前我需要的第一部分是工作,但关闭我需要的节点应用程序ctrl + shift + B,然后点击esc关闭构建窗口.
这是可能的,如果可能,怎么样?
做了一个崇高的文本插件,完全按照我上面描述的那样做.目前在ST3(Windows和Linux)上进行了测试.目前唯一的问题是在Windows平台上,您的节点脚本不会获得适当的终止程序杀死信号(SIGINT或类似的东西).我使用sublime文本自己的控制台进行io程序 - 非常方便.如果人们对此感兴趣,可能很快就会发布插件.
一种方法是在构建系统中,首先终止正在运行的节点进程,如果不成功,则将当前文件传递给节点。所以你的node.sublime-build可能看起来像这样:
{
"cmd": [ "killall node || node \"$file\"" ],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.js",
"shell": true
}
Run Code Online (Sandbox Code Playgroud)
Sublime 只允许一个命令传递多个参数,所以类似的东西"cmd": [ "killall node ||", "node", "$file"]不起作用,尽管我认为它以前在 Sublime 2 中起作用。因此需要用$file转义引号括起来,因为否则如果路径$file有一个命令,命令将失败其中的空间。另外,||这里很关键,因为killall如果没有要终止的进程,则以状态 1(错误)退出,因此第一次它将运行节点,但第二次不会。
请注意,由于我们在此处的 shell 中工作,因此这是特定于平台的。我不知道如何||在 Windows 上执行相同的操作,但您只需要这样的操作:
{
"cmd": [ "killall node || node \"$file\"" ],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.js",
"shell": true
"windows": {
"cmd": [ "insert whatever works here..." ]
}
}
Run Code Online (Sandbox Code Playgroud)
一个很大的限制是这会杀死所有正在运行的节点进程;如果你想让某些东西在后台运行,那会很烦人。如果有人知道如何在单个命令中定位特定节点进程,请添加到我的答案中。
其次,您可以将 cmd 包装在 bash 脚本中,这样可以更轻松地执行多项操作,例如终止特定进程。那么 cmd 数组将是[ "bash", "name-of-script.sh" ]. 使用lsof它可以很容易地获取正在运行当前文件的特定节点进程。您还可以使用bash -cas 命令,然后将整个脚本粘贴到 cmd 数组的第二个元素中。
希望有帮助。我缺少您的一项要求:ESC仍然需要关闭构建窗口。不知道如果不编写 Sublime 插件还能做什么。
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |