git VS代码- Cygwin作为集成终端

9cbw7uwe  于 2023-01-04  发布在  Git
关注(0)|答案(8)|浏览(152)

我想使用Cygwin作为我的Windows笔记本电脑上Visual Studio代码的集成终端(因为这将让我使用Linux终端命令git和G 等),但当我将"terminal.integrated.shell.windows":的值设置为Cygwin应用程序的地址(.exe)时,它会打开一个新的Cygwin终端,而不是保留在VS代码中。
所以我的问题是:我可以使用集成到VS代码终端的Cygwin,并使用它来使用命令(mkdirrm,等等),但也可以使用git命令,并将其用作集成的编译器和调试器(一般来说,但至少是C
)?我该如何着手?

a5g8bdjr

a5g8bdjr1#

这些配置设置适合我:

{
  // start bash, not the mintty, or you'll get a new window
  "terminal.integrated.shell.windows": "C:\\cygwin\\bin\\bash.exe",
  // Use this to keep bash from doing a 'cd ${HOME}'
  "terminal.integrated.env.windows": {
    "CHERE_INVOKING": "1"
  },
  // Make it a login shell
  "terminal.integrated.shellArgs.windows": [
    "-l"
  ],
}
yzxexxkh

yzxexxkh2#

您可以直接调用Cygwin.bat,而不会出现ENV问题:

{
    // Replace with your Cygwin.bat file path 
    "terminal.integrated.shell.windows": "C:\\cygwin64\\Cygwin.bat",
}

确保BAT脚本适合你的Cygwin。

u0njafvf

u0njafvf3#

结合以上答案,这是我的工作配置。

{
    "terminal.integrated.shell.windows": "C:\\cygwin\\bin\\bash.exe",
    "terminal.integrated.env.windows": {
        "CHERE_INVOKING": "1"
    },
    "terminal.integrated.shellArgs.windows": [
        "--login",
        "-i"
    ],
}

{在ubuntu 18.04lts上测试,在Virtualbox 5.2.12中运行Windows 7终极版32 bt}

4nkexdtk

4nkexdtk4#

自VS Code 1.55(2021年3月)起,您可以使用终端配置文件。
1.选择文件首选项设置
1.选择**打开设置(JSON)**图标(右上角,与选项卡同级)
1.将下面的代码复制并粘贴到顶级大括号{}中

"terminal.integrated.profiles.windows": {
    "Cygwin": {
      "path": "C:\\cygwin\\bin\\bash.exe",
      "args": ["--login"],
      "env": {"CHERE_INVOKING": "1"}
    }
  }

如果您有64位,您的Cygwin路径可能需要:

"path": "C:\\cygwin64\\bin\\bash.exe",

要打开Cygwin终端
1.按下F1
1.类型:端子:创建新的终端(使用配置文件)
1.选择小天鹅

9gm1akwq

9gm1akwq5#

VS代码一次只允许您设置一个默认终端配置,由于用户可能希望在任何时候都有多个shell可用,如CMD、Powershell和Cygwin Bash,因此最好使用名为Shell Launcher的Visual Studio代码扩展。
这个工具允许你在任何时候启动任意数量的shell。首先你需要重新分配CTRL-SHIFT-T热键给shellLauncher或者使用一个不同的未使用的热键。
然后,进入VS代码的settings.json并添加以下代码块:

"shellLauncher.shells.windows": [
  {
    "shell": "C:\\Windows\\System32\\cmd.exe",
    "label": "cmd"
  },
  {
    "shell": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
    "label": "PowerShell"
  },
  {
    "shell": "C:\\cygwin\\bin\\bash.exe",
    "args": ["-l"],
    "env": {"CHERE_INVOKING": "1"},
    "label": "Cygwin Bash"
  }
],

注:根据需要更改上述路径
现在,当您点击您分配的热键时,您将得到一个已配置的可用终端的下拉列表。

vkc1a9a2

vkc1a9a26#

对于VS代码v1.60,采用以下方法:“

"terminal.integrated.profiles.windows": {
      "Cygwin": {
        "source": "PowerShell",
        "args": ["C:\\cygwin\\cygwin.bat -i /Cygwin-Terminal.ico -"]
       }
     }

缺点:打开的目录将是根文件夹。

tf7tbtn2

tf7tbtn27#

如果您取出以下部分,终端将在您打开的项目中启动。

// Make it a login shell
/*"terminal.integrated.shellArgs.windows": [
    "--login"
  "-l"
]*/,
nnt7mjpx

nnt7mjpx8#

请注意,使用VSCode 1.75(2023年1月)时,在使用Cygwin终端时,您将有一个确认步骤。
参见:

  • issue 167721("通过确认步骤恢复不安全的终端配置文件路径")
  • PR 170193("支持检测具有潜在不安全路径的终端配置文件并添加选择加入")

这方面的一些背景:最近有一个CVE是关于在共享用户环境中拾取路径可以被Windows上的其他用户写入的shell的。
cygwin配置文件被删除,git bash配置文件丢失了一个用于拾取的路径:

C:\Cygwin64\bin\bash.exe
C:\Cygwin\bin\bash.exe
C:\ProgramData\scoop\apps\git-with-openssh\current\bin\bash.exe

此更改添加了将不安全路径作为"检测到的配置文件"的功能,类似于Windows PowerShell,当未安装PowerShell时,默认情况下它不会显示在新终端的配置文件列表中:

但我们确实使设置更加方便:

从那里,用户可以选择项目,使其成为默认或单击齿轮只是添加到设置。
如果您安装了Cygwin或MSYS2(新),则显示如下:

请注意exe旁边的警告图标,它是一个额外的指示器,表明这个文件是特殊的。当你点击配置文件或齿轮时,它会显示以下通知:

接受时:

这是目前VSCode insiders中提供的。

相关问题