Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VS Code - Cygwin as Integrated Terminal

I would like to use Cygwin as the integrated terminal on Visual Studio Code on my Windows laptop (as this would give me use of the Linux terminal commands git and G++, etc.) but when I set the value for "terminal.integrated.shell.windows": to the address of the Cygwin application (.exe) then it opens a new Cygwin terminal rather than remaining in VS Code.

So my question is: can I use Cygwin integrated into the VS Code terminal and use that to use commands on it (mkdir, rm, etc.) but also use git commands and use it as an integrated compiler and debugger (for generically but for C++ at least)? And how would I go about this?

like image 613
user2766296 Avatar asked Sep 05 '17 19:09

user2766296


3 Answers

These config settings work for me:

{
  // 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"
  ],
}
like image 137
Rick Renshaw Avatar answered Oct 21 '22 02:10

Rick Renshaw


You could just call the Cygwin.bat without ENV issue:

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

Make sure the BAT scripts fit to your Cygwin.

like image 27
Nick Tsai Avatar answered Oct 21 '22 03:10

Nick Tsai


Combining above answers, this is my working configuration.

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

{tested at ubuntu 18.04lts, running Windows 7 ultimate 32bt in Virtualbox 5.2.12}

like image 14