在崇高文本上切换节点构build窗口2
我希望能够使用一个快捷方式来运行和查杀包含显示和隐藏构build窗口的节点进程。
我按ctrl + B
:
- 显示构build窗口
- 运行节点进程
我再次按ctrl + B
:
- 杀死节点进程
- closures构build窗口。
我还需要发送信号,以便我可以在节点应用程序中读取它,并在退出之前执行几个动作。
目前我需要的第一部分是工作,但要closures节点的应用程序,我需要ctrl + shift + B
,然后按Escclosures构build窗口。
这是可能的,如果是这样,怎么样?
编辑1(18.09.14)
做了一个崇高的文字插件,正是我所描述的。 目前在ST3(Windows和Linux)上testing。 目前唯一的问题是,在Windows平台上,你的节点脚本不会得到正确的杀死信号(SIGINT或类似的)用于出口前程序。 我使用崇高的文本自己的控制台为io程序 – 非常方便。 如果有人对此感兴趣,可能很快就会发布插件。
一种方法是,在你的构build系统中,先杀死正在运行的节点进程,如果不成功,则将当前文件传递给节点。 所以你的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"]
不起作用,尽pipe我认为它在Sublime 2中起作用。因此,需要将$file
包装在转义引号中,否则如果到$file
的path中有空格,命令将会失败。 另外, ||
在这里是关键的,因为如果没有进程需要kill, 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数组的第二个元素中。
希望有所帮助。 我缺less一个你的要求: ESC
仍然需要closures构build窗口。 不知道还有什么可以做,而不写一个崇高的插件。
无论如何,我把它固定在这样的窗户,愚蠢? pipe他呢
{ "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\"" } }
这将杀死任何正在运行的节点,并重新启动其选项卡打开的文件