VSCode:“keybindings.json”未按终端命令的预期工作

VSCode: "keybindings.json" not working as expected for terminal command

提问人: 提问时间:10/12/2023 更新时间:10/12/2023 访问量:20

问:

我正在尝试通过 VSCode 在我的计算机上运行 node。它安装在 Unity 的目录中,因为我的学校不允许我们下载随机应用程序。但是我们将 Unity 用于类,并且它有 node.exe 在它的目录中的某个地方。当我按下时,我尝试将其用作编译器路径,但我需要 NVM,而我没有。所以我试着直接命令来做这件事,尽管我被卡住了:Program FilesCtrl + F5

我将提供我的文件、我的文件和终端输出。keybindings.jsonindex.js

keybindings.json

(双斜杠是文本字符串的转义符。

[{
    "key": "ctrl+shift+f5",
    "command": "workbench.action.terminal.sendSequence",
    "when": "editorLangId == javascript",
    "args": { "text": "cls; cd 'C:\\Program Files\\Unity 2022.3.6f1\\Editor\\Data\\Tools\\nodejs'; .\\node \"${file}\"; cd \"${fileDirname}\"; echo \u000D; pause" }
}]

索引.js

console.log('test');

输出

当我按下 时,会发生这种情况:Left Shift + Ctrl + F5

test

cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters:       
InputObject[0]: 

它有效,但它正在寻找输入。这很奇怪,因为当我在 Powershell 中执行此操作并用实际路径替换 and 时,它会按预期工作。filefileDirname

我希望输出后面跟着换行符。test

我尝试了一些东西,比如删除 .那没有用。当我删除换行符转义字符的回声时,它只将该行放入终端中,但不会运行它。我认为这可能会导致问题,但我相信应该运行命令,而不仅仅是将其输入到终端中。pauseworkbench.action.terminal.sendSequence

我可能可以自己解决的另一件事是,我必须打开终端才能执行此操作。如果它当前未打开,它将无法工作。

json visual-studio-code 终端 操作 vscode-debugger

评论

0赞 starball 10/12/2023
"但我需要 NVM“到底是为了什么?为什么?
0赞 starball 10/12/2023
回声的目的是什么?要运行命令?为什么你不能直接使用?命令是怎么回事?这是干什么用的?\npause
0赞 starball 10/12/2023
也。。。为什么不直接使用节点启动配置的属性?-假设你使用启动配置来运行/调试。runtimeExecutable
0赞 10/12/2023
我拥有的@starball Unity 使用的是 Node 的降级版本。出于某种原因,VSCode 不允许我在没有 NVM 的情况下使用它。
0赞 10/12/2023
@starball我不知道,似乎在做同样的事情。\n

答: 暂无答案