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

时间:2017-08-19 20:38:25

标签: powershell visual-studio-code cmder

我使用cmder作为VSCode内的终端。我试图在powershell内将cmderVSCode进行整合。 我在cmder的{​​{1}}配置中看到,以下内容作为参数传递:

powershell

我尝试在"-ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command" "Invoke-Expression '. ''C:\\cmder\\vendor\\profile.ps1'''" 中使用此功能:

user.settings

然而,终端在打开时崩溃。

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

2 个答案:

答案 0 :(得分:3)

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

我也从this issue on GitHub发现Invoke-Expression方法永远不会调用该文件,所以提供了正确的方法。

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

enter image description here

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

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

修改

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

答案 1 :(得分:1)

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

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