在崇高文本 2 上切换节点构建窗口
Toggle Node Build Window on Sublime Text 2
我希望能够使用一个快捷方式来运行和终止节点进程,包括根据需要显示和隐藏构建窗口。
我按ctrl + B
:
- 显示生成窗口
- 运行节点进程
我再次按ctrl + B
:
- 终止节点进程
- 关闭"生成"窗口。
我还需要发送终止信号,以便我可以在节点应用程序中读取它并在退出之前执行几个操作。
目前我需要的第一部分正在工作,但要关闭节点应用程序,我需要ctrl + shift + B
,然后点击 esc 关闭构建窗口。
这是否可能,如果可能,如何?
编辑 1 (18.09.14)
制作了一个崇高的文本插件,完全符合我上面描述的功能。目前在ST3(Windows和Linux)上测试。目前唯一的问题是,在 Windows 平台上,您的节点脚本不会为退出前的过程获得适当的终止信号(SIGINT 或类似的东西)。我使用崇高的文本自己的控制台进行io程序 - 非常方便。如果人们对它感兴趣,可能会很快发布插件。
一种方法是,在你的构建系统中,首先杀死正在运行的节点进程,如果不成功,将当前文件传递给节点。所以你的node.sublime-build可能看起来像这样:
{
"cmd": [ "killall node || node '"$file'"" ],
"file_regex": "^[ ]*File '"(...*?)'", line ([0-9]*)",
"selector": "source.js",
"shell": true
}
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..." ]
}
}
一个很大的限制是这会杀死所有正在运行的节点进程;如果你想让某些东西在后台运行,那会很烦人。如果有人知道如何在单个命令中针对特定节点进程,请添加到我的答案中。
其次,您可以将cmd包装在bash脚本中,这样可以更轻松地执行多种操作,例如杀死特定进程。然后 cmd 数组将[ "bash", "name-of-script.sh" ]
.使用 lsof
获取运行当前文件的特定节点进程将相当容易。您也可以使用 bash -c
作为命令,然后将整个脚本粘贴到 cmd 数组的第二个元素中。
希望有帮助。我缺少您的要求的一部分:关闭构建窗口仍然需要ESC
。不确定在不编写Sublime插件的情况下还可以做什么。
无论如何,我在这样的窗口中修复了它
{
"shell": true,
"windows": {
"cmd": "(TASKKILL /F /IM node.exe || 1)&& node '"$file'""
}
}
我以同样的方式做了,但没有检查除.js文件以外的任何文件
{
"cmd": [ "killall node || node '"$file'"" ],
"selector": "*.js",
"shell": true
"windows": {
"cmd": "(TASKKILL /F /IM node.exe || 1)&& node '"$file'""
}
}
这将杀死任何正在运行的节点并重新启动选项卡已打开的文件
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何解决'窗口未定义'终端上的节点JS出错
- 窗口对象属性返回一个dom节点
- 在d3.js中单击URL为的节点时无法打开弹出窗口
- 节点Webkit窗口上下文
- 使用 JSDom 在节点测试环境中正确接近“窗口”
- 在崇高文本 2 上切换节点构建窗口
- 什么是节点.js相当于窗口[“myvar”] = 值
- 如何在新窗口中打开 Arbor.js 节点链接
- 全局变量存储在 Node.JS 中的什么位置?节点中是否有类似窗口的对象
- 启动后我如何在节点 webkit 中获取窗口对象
- 如何重新打开已经运行的节点webkit窗口应用程序
- 从新打开的窗口jquery中删除一个节点
- 窗口的节点中的Shebang
- 在不同的窗口中追加相同的节点
- 有没有一种好方法来启用“在新窗口中打开链接”?在dom节点上的浏览器菜单选项,而不使链接跟随单击
- 单击jtree节点时打开多个窗口
- 关于力定向图的信息,在节点上弹出窗口
- 节点检查器窗口上的空白屏幕
- 节点.js电子预构建错误找不到模块“浏览器窗口”窗口 10