如何在VS Code中正确集成Cmder?

4
我希望将Cmder shell集成到我的VS Code配置中。
我在Windows上使用64位的VS Code,并尝试修改我的settings.json文件,如下所示,以使Cmder作为集成终端工作:
"terminal.integrated.shell.windows": "C:\\Program Files\\Cmder\\Cmder.exe",

我重新启动了VS Code并尝试打开终端。

起初出现了这个错误消息框:

无法将ConEmu.xml文件复制到备份位置!
以管理员身份重新启动Cmder。

因此,我以管理员身份启动了VS Code,这使得错误消息消失了;但是,我注意到VS Code在另一个窗口中而不是在终端中打开Cmder。

如何在VS Code终端中运行Cmder shell?

P.S. VS Code文档中的这个提示是否可能是解决方案?

提示:集成终端shell正在使用VS Code的权限运行。如果您需要使用提升的(管理员)或不同的权限运行shell命令,则可以在终端中使用诸如runas.exe之类的平台实用程序。

来源:https://code.visualstudio.com/docs/editor/integrated-terminal

4个回答

11

您的配置文件中存在错误,以下内容是无效的

"terminal.integrated.shell.windows": "C:\\Program Files\\Cmder\\Cmder.exe"

请勿在VS Code中调用Cmder.exe,而是使用下面的指令中的init.bat将Cmder集成到VS Code中。

有关此问题的说明已在Cmder存储库此处解释。


使Cmder在VS Code中工作

  1. 确保您使用的是Cmder的最新版本——下载最新版本此处

  2. 通过按下Ctrl + ,来打开settings.json配置文件(Control-Comma),访问首选项,然后单击在settings.json中编辑链接

  3. VS Code文档在这个链接中解释了该过程:
    我能在Windows终端中使用Cmder的Shell吗?

    是的,为了在VS Code中使用Cmder shell,您需要将以下设置添加到您的settings.json文件中:

    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
    "terminal.integrated.shellArgs.windows": ["/K", "C:\\cmder\\vendor\\init.bat"]
    
  4. 顺便提一下,你需要用你自己的安装路径替换 C:\\cmder
    提示: 将单个反斜杠 (\) 替换为双反斜杠 (\\)。

  5. 请确保阅读官方 Cmder wiki 上的注意事项:

    请注意使用 cmd.exe 而非 cmder.exe

    提示: 关于如何处理路径中的空格,请参考此处的说明。
    简述: Cmder 团队不建议使用,但可以在空格前加上 ^ 字符来处理路径。

  6. 无需重新启动 VS Code 即可使其生效。
    按下 Ctrl + `(Control-Tilde)以在 VS Code 终端中打开 Cmder!

您可以参考我的答案此处,了解此方法的完整解释。


相关信息

在 VS Code 仓库和 Cmder 仓库中也存在类似的问题。


2
cmd.exe 不是 cmder。如果你运行 cmd.exe,你将没有 cmder 提供的 conemu 环境。因此它可能可以与 cmder 的扩展 cmd 一起使用,但在 git-bash 中不能正常工作,因为它不理解 ANSI 颜色代码,而在 cmder 中会自动处理。 - indriq
4
非常详细的回答! - Ben Smith

3

以下是我在2021年6月22日测试成功的方法:将以下内容添加到用户设置文件settings.json中(我的路径为« C:\Users\ianla\AppData\Roaming\Code\User\settings.json »):

"terminal.integrated.profiles.windows": {
    "cmder": {
      "path": "C:\\WINDOWS\\System32\\cmd.exe",
      "args": ["/K", "C:\\Users\\ianla\\cmder\\vendor\\bin\\vscode_init.cmd"]
    }
  },
  "terminal.integrated.defaultProfile.windows": "cmder",

当然,你需要将我的 « C:\Users\ianla\ » 更改为你的 "cmder" 安装路径。

这里有更多信息


3
Cmder 1.3.12引入了vscode_init.cmd脚本,使得VS Code任务能够正确地与Cmder配合使用。
如果您使用的是大于1.3.11版本的Cmder,则上面提到的VS Code文档已经过时。
Cmder GitHub存储库现在有广泛的文档,介绍如何实现Cmder和VS Code之间的集成。撰写本消息时,它比VS Code文档更准确。

2
以下是适用于我(Cmder版本大于1.3.11)的方法:
  1. Paste \cmder directory into C:\tools

  2. Paste in .vscode\settings.json :

    "terminal.integrated.shell.windows": "cmd.exe",
    "terminal.integrated.env.windows": {
        "CMDER_ROOT": "C:\\tools\\cmder"
    },
    "terminal.integrated.shellArgs.windows": [
        "/k",
        "%CMDER_ROOT%\\vendor\\bin\\vscode_init.cmd"
    ],
    

...并享受吧!


1
在 vscode 的 2021 年 4 月更新中,命令“terminal.integrated.shell.windows”和“terminal.integrated.shellArgs.windows”已被弃用。 - emgf_co
1
新的命令是什么?我正在寻找它们。 - Pajri Aprilio
2
@PajriAprilio 关注这个新问题 https://dev59.com/VcDqa4cB1Zd3GeqPiKQD - emgf_co

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