我在 Sublime Text 3 中为 JavaScript 文件提供了以下构建脚本。
{
"shell_cmd": "node --harmony --use-strict --harmony_generators $file"
}
问题是,当节点返回错误时,由于某种原因,Sublime 会吐出不换行的路径,并污染输出。
C:\Users\JFD\Desktop\playground.js:2
console.log(b); // ReferenceError: a is not defined
^
ReferenceError: b is not defined
at Object.<anonymous> (C:\Users\JFD\Desktop\playground.js:2:13)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
at startup (node.js:119:16)
at node.js:827:3
[Finished in 0.1s with exit code 8]
[shell_cmd: node --harmony --use-strict --harmony_generators C:\Users\JFD\Desktop\playground.js]
[dir: C:\Users\JFD\Desktop]
[path: C:\Program Files (x86)\Microchip\xc8\v1.11\bin;C:\Program Files (x86)\CMake 2.8\bin;C:\MinGW\bin;C:\yagarto4.6.0\bin;C:\Python26\;C:\Python26\Scripts;C:\Program Files (x86)\Altium Designer S09 Viewer\System;C:\PROGRA~2\MpAM;C:\windows\system32;C:\Program Files\nodejs\;C:\Cadence\SPB_16.6\tools\bin;C:\Cadence\SPB_16.6\tools\libutil\bin;C:\Cadence\SPB_16.6\tools\fet\bin;C:\Cadence\SPB_16.6\tools\specctra\bin;C:\Cadence\SPB_16.6\tools\pcb\bin;C:\Cadence\SPB_16.6\openaccess\bin\win32\opt;C:\Cadence\SPB_16.6\tools\capture;C:\Users\JFD\AppData\Roaming\npm\;c:\altera\12.1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ae\win32aloem]
我该如何要求 Sublime不是输出路径?
答案1
有点儿像 hack,但下面的方法对我有用。事实证明,你可以覆盖某些默认包中的代码,包括负责路径输出的代码:
- 转到 C:\Program Files\Sublime Text 3\Packages
- 解压 Default.sublime-package(它实际上是一个 zip 文件)并获取文件 exec.py(不要将解压的文件夹留在目录中)
- 在 C:\Users\USERNAME\AppData\Roaming\Sublime Text 3\Packages 下创建目录 Default,并将 exec.py 放入其中
打开 exec.py,注释掉(在行首放置 #)以下行,对我来说是第 245 行
self.append_string(proc,self.debug_text)
- 重启 Sublime Text
答案2
安装包资源查看器包裹
打开 PackageResourceViewer:使用 CommandPalette[Ctrl+Shift+P] 打开资源
然后选择默认-->exec.py 然后选择 Sublime Input -->input.py [对于 Sublime Input]
注释掉(在行首放置 #)以下行,对我来说是第 365 行 [ST3 B3126](Sublime Input 为 383)
self.append_string(proc, self.debug_text)
这不仅隐藏了路径,还隐藏了目录和cmd。
要仅隐藏路径,请注释以下块
if "PATH" in merged_env:
self.debug_text += "[path: " + str(merged_env["PATH"]) + "]"
else:
self.debug_text += "[path: " + str(os.environ["PATH"]) + "]"
更新
在构建文件中删除 cmd、finish 语句、dir、path“quiet”:true