如何在 VSCode 中将 cmder 与 powershell 一起使用?

How to use cmder with powershell in VSCode?

我在 VSCode 中使用 cmder 作为终端。我试图将 powershellcmder 集成到 VSCode 中。 我看到在 powershellcmder 配置中,以下内容作为参数传递:

"-ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command" "Invoke-Expression '. ''C:\cmder\vendor\profile.ps1'''"

我试过在 user.settings 中这样使用它:

"terminal.integrated.shell.windows": "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command \"Invoke-Expression '. ''C:\cmder\vendor\profile.ps1'''\""]

但是,终端在打开时崩溃了。

我想我可以在这里使用一些帮助或指导。谢谢。

您不能将参数作为一个大字符串传递到该设置中。它通过将它们作为逗号分隔来解析它。

我还从 this issue on GitHub 中发现 Invoke-Expression 方法永远不会调用文件,因此请提供以下正确方法。

此外,请注意您在下面的屏幕截图中看到的错误是因为 cmder 附带的配置文件编码不正确。

您需要按照以下格式将参数添加到设置文件中:

"terminal.integrated.shellArgs.windows": [
    "-ExecutionPolicy",
    "Bypass",
    "-NoLogo",
    "-NoProfile",
    "-NoExit",
    "-Command",
    ". 'C:\tools\cmder\vendor\profile.ps1'"]

编辑

试图找出出现的错误似乎有点错误,因为在打开 cmder 后,环境变量 $env:CMDER_ROOT 显示正确。但是,在上面的代码中启动它后,它显示 CMDER_ROOT 由于某种原因设置为 C:\。有些事情你必须自己弄清楚或与维护软件的人核实。

修复路径错误您可以设置设置路径

$env:CMDER_ROOT = "path to CMDER e.g. D:\cmder_mini";