如何在Visual Studio Code中使用Cmder?

51

在工作中,存在一项企业安全政策,规定所有可执行文件只能从 C:\Program FilesC:\Program Files (x86) 中运行。

在 Visual Studio Code 中,使用以下设置:settings.json

{
    "terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\cmd.exe",
    "terminal.integrated.shellArgs.windows": [
        "/k C:\\Program Files (x86)\\Cmder\\vendor\\init.bat"
    ]
}

...在终端集成初始化时,我收到以下错误消息:

'C:\Program' is not recognized as an internal or external command, 
operable program or batch file.

由于Windows极好的文件/目录命名规则允许使用空格,因此很难指向其中一个Program File路径。

VSCode不喜欢您转义空格字符,因此此代码会导致错误字符串中的无效转义字符。当我尝试将属性更改为以下内容时:

{
    ...
    "terminal.integrated.shellArgs.windows": [
        "/k C:\\Program\ Files\ (x86)\\Cmder\\vendor\\init.bat"
    ]
}

我收到了以下错误信息:

'C:\ProgramFiles' is not recognized as an internal or external command,
operable program or batch file.

最后,尝试像这样用引号将路径括起来:

{
    ...
    "terminal.integrated.shellArgs.windows": [
        "/k \"C:\\Program Files (x86)\\Cmder\\vendor\\init.bat\""
    ]
}

...会给我显示这个错误信息:

'\"C:\Program Files (x86)\Cmder\vendor\init.bat\""' is not recognized as an 
internal or external command,
operable program or batch file.

有没有办法在VSCode中集成Cmder?


修复在此处:https://dev59.com/OKbja4cB1Zd3GeqPkrmg#48104881?noredirect=1#comment83209354_48104881 - Adson Cicilioti
1
@Adson,谢谢?我已经发布了我的问题的解决方案,而你提供的答案直到我提问5个月后才出现。 - homersimpson
1
将整个路径用引号括起来接近但不完全是正确的语法。引号应该包围包含空格的特定文本块,即 "C:\\\"Program Files (x86)\"\\Cmder\\vendor\\init.bat"。我知道这个问题已经以其他方式解决,但我希望这个小提示仍然有用。 - cg_and
2
这里是官方Cmder指南:https://github.com/cmderdev/cmder/wiki/Seamless-VS-Code-Integration - David Refoua
14个回答

0
我找到的最佳解决方案: 快速而简单。
"terminal.external.windowsExec": "C:\\Utils\\Cmder\\Cmder.exe",
"terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\cmd.exe"
"terminal.integrated.shellArgs.windows" : ["/K","C:\\Utils\\cmder\\vendor\\init.bat"],

0
在 Visual Studio 中按下 ctrl + p 写入/前往 settings.json 将以下内容粘贴到其中
"terminal.integrated.profiles.windows": {
  "Cmder": {
    "path": "${env:windir}\\System32\\cmd.exe",
    "args": ["/k", "C:\\cmder\\vendor\\git-for-windows\\bin\\bash.exe"]
  }
},
"terminal.integrated.defaultProfile.windows": "Cmder",

请确保 "args" 是您在计算机中放置 cmder 的目录。


0

有两个扩展可以将Cmder包含到VS Code中,但它们都不适用于Win 7(我知道它相当古老),无论如何,虽然这里的一些答案有所帮助,但对我的情况没有用。

位置详细信息:

cmd.exe = C:\Windows\System32\cmd.exe
I am using a portable version of Cmder in C:\cmder\Cmder.exe
init.bat = C:\cmder\vendor\init.bat
setting.json = C:\Users\Admin\AppData\Roaming\Code\User\settings.json

这是我的settings.json文件

{
    "window.zoomLevel": 0,
    "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
    "terminal.integrated.shellArgs.windows": [
        "/k C:\\cmder\\vendor\\init.bat"
    ]
}

并且截图显示它正常工作

Cmder集成到VS Code中

注意:我不需要将Cmder添加到环境路径中


-1
Windows中的命令行解释器在路径中存在空格时会出现一些问题,例如C:\Program Files\Cmder或C:\Program Files (x86)\Cmder。因此,最好创建一个名为“apps”的新文件夹,并使用没有空格的路径,如c:\apps。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接