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

"-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 附带的配置文件未正确编码。

powershell - 如何在 VSCode 中使用带有 powershell 的 cmder?-LMLPHP

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

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

编辑

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

关于powershell - 如何在 VSCode 中使用带有 powershell 的 cmder?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45776074/

10-13 08:51