3

因此,基本上 Visual Studio Code 中的 Code Runner 可以在集成终端中运行。如何让它在外部终端运行,即命令提示符,因为我需要将我的程序输出呈现给我的同学,所以通过集成显示它不方便。

我知道有一个像 Dev-C++ 这样的软件可以在外部终端中运行,但是我喜欢使用这个 VS Code,因为它的 UI 很干净,而且 Code Runner 插件做得很好。怎么一键搞定?有什么配置吗?

4

6 回答 6

4

假设您使用的是 Windows,您所需要做的就是在 code-runner.executorMap 选项中将“启动”命令放在要运行的 .exe 文件之前。这是一个例子:

"code-runner.executorMap": {
        "cpp": "g++ $fullFileName -o $fileNameWithoutExt.exe && start $fileNameWithoutExt.exe"
}
于 2019-10-09T21:21:14.123 回答
4

如果有人想知道如何编辑"code-runner.executorMap"":{}上述答案,请提供一种进入settings.json. 所以我写这个答案只是为了阐明如何进入代码运行器设置。

转到文件->首选项->设置并在搜索选项卡中搜索“ executorMap ” -> 然后单击Code-runner:Executor Map并按如下方式编辑代码C

"code-runner.executorMap": {
        "c": "g++ $fullFileName -o $fileNameWithoutExt.exe && start $fileNameWithoutExt.exe"
}

C++如下编辑代码,

"code-runner.executorMap": {
        "cpp": "g++ $fullFileName -o $fileNameWithoutExt.exe && start $fileNameWithoutExt.exe"
}

注意:此解决方案适用于 windows 环境

于 2020-10-20T15:51:14.633 回答
1

对于 Linux:

如果您正在运行 linux,那么您可以将其粘贴到 code-runner.executorMap

如果你想用 gnome 终端执行你的代码:

"code-runner.executorMap": {
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && gnome-terminal -- bash -c './$fileNameWithoutExt ; read line'",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && gnome-terminal -- bash -c './$fileNameWithoutExt ; read line'",
}
        

如果您正在运行 ubuntu 或者如果您有 gnome 终端,请使用它。'read line' 用于保持窗口打开,直到代码执行后按下任何键

如果你想用 Xterm 执行你的代码:

    "code-runner.executorMap": {
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && xterm -hold ./$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && xterm -hold ./$fileNameWithoutExt"
    }

如果你有 xterm,你可以使用它。-hold 标志用于在代码执行后保持窗口打开

于 2020-05-03T07:11:20.590 回答
1

在 Windows 上,当 VSCode 中的 Default Shell 设置为 PowerShell 7 (pwsh.exe) 时,我使用:

"code-runner.executorMap": {
    "c": "cd $dir && gcc -Wall -Wextra -pedantic -std=c18 $fileName -o $fileNameWithoutExt.exe && Start-Process -FilePath pwsh -ArgumentList \"-Command  &{.\\$fileNameWithoutExt.exe; pause}\"",
}

当 VSCode 中的默认 Shell 设置为命令提示符 (cmd.exe) 时,我使用

"code-runner.executorMap": {
     "c": "cd $dir && gcc -Wall -Wextra -pedantic -std=c18 $fileName -o $fileNameWithoutExt.exe && Start pwsh -Command  \"& {.\\$fileNameWithoutExt.exe; pause}\"",
}

在这两种情况下,“暂停”都会在代码执行后保持外部 PowerShell 7 终端打开。

于 2020-07-17T04:00:27.653 回答
1

如果您使用的是 Code Runner,您可以将其添加到您的settings.json

    "code-runner.executorMap":{
        "cpp": "cd $dir && g++ -O2 -std=c++17 $fileName -o $fileNameWithoutExt && start cmd \"/k ; $fileNameWithoutExt\""
    },

这将保留cmd程序执行后的内容。

于 2021-02-14T09:34:01.323 回答
0

我不知道为什么konsole -- bash -c "command"命令现在适用kde konsole所以,如果你使用kde然后gnome-terminal安装 如果你想运行一个外部终端然后将它添加到settings.jsonvscode

"code-runner.runInTerminal": true,
"code-runner.preserveFocus": false,
"code-runner.executorMap": {
    "c": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && gnome-terminal -- bash -c 'dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && gcc $File -lm;./a.out;echo Hit Enter to EXIT;read lines;rm *.out' && exit",
    "cpp": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && gnome-terminal -- bash -c 'dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && g++ $File -lm;./a.out;echo Hit Enter to EXIT;read lines;rm *.out' && exit",
    "java": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && echo $fileNameWithoutExt > /tmp/javaRun && gnome-terminal -- bash -c 'dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && javac $File;binary=\"$(cat /tmp/javaRun)\";java $binary;echo Hit Enter to EXIT;read lines;rm *.class' && exit",
    "python": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && gnome-terminal -- bash -c 'cd;source /home/$USER/anaconda3/bin/activate; conda activate MyPy38;dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && python -u $File;echo Hit Enter to EXIT;read lines' && exit",
  },
  "terminal.integrated.inheritEnv": false

如果您不想删除该binary or exe or class文件,请从中删除rm *.outrm *.out类似命令。

对于AnacondaPython source /home/$USER/anaconda3/bin/activate;,用于激活基本 anaconda env,然后MyPy38conda activate MyPy38;. 如果您从默认python3和库运行 python,pip则将命令替换为

"python": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && gnome-terminal -- bash -c 'cd;dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && python3 -u $File;echo Hit Enter to EXIT;read lines' && exit",

或者,您可以使用项目基础 python envs“就像假设 python 解释器目录是/From/Base/To/Python/Binary/目录”这样,它将是

"python": "cd $dir && echo $PWD > /tmp/vsDir && echo $fileName > /tmp/vsFile && gnome-terminal -- bash -c 'cd;dir=\"$(cat /tmp/vsDir)\" && cd $dir;File=\"$(cat /tmp/vsFile)\" && /From/Base/To/Python/Binary//python -u $File;echo Hit Enter to EXIT;read lines' && exit",
于 2022-02-24T16:31:51.543 回答