4

cmder在里面用作终端VSCode。我试图powershellcmderinside整合VSCode。我看到在cmder配置中powershell,以下内容作为参数传递:

"-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'''\""]

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

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

4

2 回答 2

4

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

我还从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_ROOTC:\出于某种原因设置为。您必须自己弄清楚或与维护软件的人核实。

于 2017-08-27T01:25:55.063 回答
1

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

$env:CMDER_ROOT = "path to CMDER e.g. D:\cmder_mini";
于 2018-02-22T11:56:40.403 回答