I am using Visual Studio Code on my Windows 10 PC. I want to change my default terminal from Windows PowerShell to Bash on Ubuntu (on Windows).
How can I do that?
You can also select your default terminal by pressing F1 in VS Code and typing/selecting Terminal: Select Default Profile (or Terminal: Select Default Shell in older VSCode versions).
Older:
Configure your default integrated terminal by running the Terminal: Select Default Profile command, which is also accessible via the terminal dropdown.
See https://code.visualstudio.com/docs/editor/integrated-terminal#_terminal-profiles
I just type following keywords in the opened terminal;
powershell
bash
cmd
node
python (or python3)
See details in the below image. (VSCode version 1.19.1 - windows 10 OS)
It works on VS Code Mac as well. I tried it with VSCode (Version 1.20.1)
Go to File > Preferences > Settings (or press Ctrl+,) then click the leftmost icon in the top right corner, "Open Settings (JSON)"
In the JSON settings window, add this (within the curly braces {}):
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\bash.exe"`
(Here you can put any other custom settings you want as well)
Checkout that path to make sure your bash.exe file is there otherwise find out where it is and point to that path instead.
Now if you open a new terminal window in VS Code, it should open with bash instead of PowerShell.
Since you use WSL, VSCode has dedicated Remote - WSL extension so you can use Linux environment directly in VSCode. When you open the project inside Linux, by default, it's use Linux default shell (bash by default), so no config needed.
If you want to switch to other profile, there is Terminal > Integrated > Default Profile: Linux section so you can pick your favorite one.
Going off of #arielhad's solution...
My VSCode version was 1.57.1.
Open settings.xml file:
Ctrl + Shift + p
Type 'Open Settings (JSON)' and select.
Add the following:
"terminal.integrated.profiles.windows": {
"PowerShell": {
"path": [
"${env:windir}\\Sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",
"${env:windir}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
],
"source": "PowerShell",
"icon": "terminal-powershell",
"args": [
"-NoLogo",
"-ExecutionPolicy",
"Bypass"
]
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"icon": "terminal-cmd"
},
//START: THIS DOES NOT WORK
"Git Bash": {
"path": [
"C:\\Program Files\\Git\\bin\\bash.exe",
],
"source": "Git Bash",
"icon": "terminal-bash"
}
// END: THIS DOES NOT WORK
//START: THIS WORKS
"GitBash": {
"path": [
"C:\\Program Files\\Git\\bin\\bash.exe",
],
"icon": "terminal-bash"
}
// END: THIS WORKS
}
I don't know why the second way works but it does. It appears the 'Git Bash' is a reserved name and I guess you cannot set the path.
To change the default terminal for your project in Visual Studio Code:
Create a folder by name of .vscode
Create a settings.json file in this folder:
Write the settings you want
for example, if you are a window user and want to set "Command Prompt" as the default terminal you can write:
"terminal.integrated.defaultProfile.windows": "Command Prompt"
values You can pass: "Git Bash", "PowerShell", and "Command Prompt".
for Linux you will use terminal.integrated.defaultProfile.linux and for mac os you will use: terminal.integrated.defaultProfile.osx
press ctrl+Shift+p
-> type settings.json
at the of file change the 'powershell' to 'Git Bash'
The integrated shell option still works but has been depreciated. The fix is to use the integrated profile instead:
"terminal.integrated.defaultProfile.windows": "C:\\Program Files\\Git\\bin\\bash.exe (migrated)",
"terminal.integrated.profiles.windows": {
"C:\\Program Files\\Git\\bin\\bash.exe (migrated)": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
"args": []
}
}
Just press Ctrl + Shift +p
search "Terminal: Select Default Profile" click
You will see terminals options and select Git Bash
If you want to select the type of console, you can write this in the file "keybinding.json" (this file can be found in the following path "File-> Preferences-> Keyboard Shortcuts")
`
//with this you can select what type of console you want
{
"key": "ctrl+shift+t",
"command": "shellLauncher.launch"
},
//and this will help you quickly change console
{
"key": "ctrl+shift+j",
"command": "workbench.action.terminal.focusNext"
},
{
"key": "ctrl+shift+k",
"command": "workbench.action.terminal.focusPrevious"
}`
You can change the terminal by opening command pallete by pressing CTRL SHIFT P
or you can go to View in the top and click "Open Command Pallete"
then type Terminal: Select Default Profile
and you you type which terminal you want.
Related
Whenever I open terminal in VS Code it always opens it's default one, and I always have to manually change it.
This is really annoying because I use terminal all the time every day. I checked Terminal settings in the toolbar but I can not find the option to change default. How can we do it?
When terminal is opened, in top right corner user should click on down-arrow button and then an option menu will appear. Then you should select Select Default Profile and you can choose your default terminal from there.
There are a lot of issues on github about this, see, e,g, Default console changed from what I wanted to Powershell during upgrade
( I think that is oldest tracking one for the v1.60 release).
I can replicate the problem on the Stable v1.60 build but not on the Insiders' Build with the exact same settings.
So it isn't your set-up and I'm sure the vscode team is aware of it. Your options are to
(1) use the Insiders' Build - at least that works for me,
(2) downgrade vscode to v1.59,
(3) when I click the Add Terminal + button I do get my default Git Bash terminal, or
(4) rename your default profile - see below.
FYI, my settings:
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
// "Git Bash": { // "Git Bash" does not work
"GitBash": { // "GitBash" does work
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
"icon": "terminal-bash"
}
},
// "terminal.integrated.defaultProfile.windows": "Git Bash" // does not work for me
"terminal.integrated.defaultProfile.windows": "GitBash" // does work
// deprecated but may still work for you
// "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
Previously trying to set Git Bash as default profile, for Git Bash it was suggested to use GitBash instead (remove the space). That never worked for me until today in the v1.60 Stable Build.
So might try changing your profile name to something other than Git Bash or WSL, etc, if that isn't working.
I have attempted to set the default terminal about a dozen times, but it is not sticking with the latest update. It keeps opening PowerShell as the default terminal. These settings have been working fine for me until yesterday's update (v1.60.0), which broke this.
"terminal.integrated.defaultProfile.windows": "WSL",
"terminal.integrated.profiles.windows": {
"WSL": {
"path": "C:\\WINDOWS\\System32\\wsl.exe",
"args": [
"~"
],
"icon": "terminal-ubuntu"
},
"Git Bash": {
"source": "Git Bash",
"icon": "terminal-bash"
},
"Command Prompt": {
"path": [
"${env:windir}\\System32\\cmd.exe"
],
"args": ["/K cls && cd /D C:\\OD"],
"icon": "terminal-cmd"
},
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
}
}
Anyone else experiencing this?
The solution that worked for me is:
Method 1:
Open Settings.json file and add the following line of code
"terminal.integrated.defaultProfile.windows": "Command Prompt"
After making this change my Settings.json file looks like this:
{
"files.autoSave": "afterDelay",
"window.zoomLevel": 1,
"liveServer.settings.donotVerifyTags": true,
"liveServer.settings.donotShowInfoMsg": true,
"terminal.integrated.automationShell.windows": "",
"terminal.integrated.automationShell.linux": "",
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}
Method 2:
Click on Settings and search for defaultprofilewindows
You will get the default terminal on this tab. Click on the menu list and select Command Prompt.
You can choose any of the available Terminals and check which one will work as you want.
Note: Using either method you will get the same results. Both of these above-mentioned methods are working perfectly for me.
I got it to load properly, but when I try to run a Python script using the run button, it runs in PowerShell.
"terminal.integrated.automationShell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
"terminal.external.windowsExec": "C:\\Program Files\\Git\\bin\\bash.exe",
"terminal.integrated.profiles.windows": {
"PowerShell": null,
"Command Prompt": null,
"Git Bash": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
"icon": "terminal-bash"
},
},
"terminal.integrated.defaultProfile.windows": "Git Bash"
All in title. Also i'm russian and this is Google Translate. I opened the process in Task Manager and went to the file location. There was an error with access denial, but it was solved with the help of Computer Control. But I don't know how to open this particular terminal in vs code. I introduced OpenConsole first.Yes, but it was only a terminal. But that's what I'm interested in.
SCREENSHOT
I think you want to launch the new Windows Terminal from within VS Code.
What you need to do is edit your USER settings.json, and locate the line that associates an editor with the integrated Windows terminal (there are three built-in editors that you can redefine:
Windows (cmd or PowerShell)
Windows Subsystem for Linux (wsl)
Linux (xterm)
):
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
If you REPLACE this by:
"terminal.integrated.shell.windows": "C:\\Users\\<your_user_name>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe",
... then your Windows Terminal will pop up rather than the cmd integrated console. But it will be in a separate window (not in the VS Code pane); I am not aware of any method on how to start Windows Terminal in integrated mode...
If it is however your intention to replace the usual cmd terminal by a PowerShell, then you can follow the instructions from Fran6.
A more graphical method is go to your existing VS Code terminal, and go to the drop down to select one of multiple terminals you might have launched. Below your existing terminals, there is an option to 'Select Default Shell':
When you select this option, this will take you straight to the options available to change to your preferred integrated shell:
When you now hit the + next to the dropdown, you can accumulate as many shells as you want, of any type that you want; Here is an example of 2 cmd shells, 1 PowerShell, and one wsl shell:
Update (May 2021):
The terminal.integrated.shell.windows setting is now deprecated.
You should add a profile to terminal.integrated.profiles.windows. For example:
terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": "C:\\WINDOWS\\System32\\cmd.exe"
},
"wt": {
"path": "C:\\Users\\<your_user_name>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
},
},
Then set it as default:
"terminal.integrated.defaultProfile.windows": "wt",
To use a different shell in vscode:
Use the shortcut Ctrl + Shift + P on your keyboard or go to view >> Command Palette
Type in:
Terminal: select default shell
From there you can select a powershell terminal instead of the usual command prompt
VSCode Change Default Terminal
Here is a detailed guide. Just changing the value of the object, works unless you're running java and other programming languages. It works well even with the Code Runner extension.
This question already has answers here:
How to quickly change shell folder to match the currently open file
(5 answers)
Closed 3 years ago.
In class we had a hotkey for using the terminal with the currently choosen directory. I fixed an issue now with the debugger and everything seems to run smoothly now. Yet, what hotkey fixes this issue?
With VSCode 1.39 (Sept. 2019), no more plugin needed.
You now can "Open new terminals with custom working directories"
There is a new command that allows the creation of terminals with a custom current working directory (cwd):
{
"key": "cmd+shift+c",
"command": "workbench.action.terminal.newWithCwd",
"args": {
"cwd": "${fileDirname}"
}
}
You can create your own keyboard shortcuts to open new terminals in any number of handy working directories.
The cwd value can either be a normal path or a variable.
For a hotkey to quickly set your terminal folder to your current directory, see How to quickly change shell folder to match the currently open file
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd '${fileDirname}'\u000D"}
},
This will change your current terminal, not open a new terminal - if you want to do that see the link above as well for the new command recently added to vscode.
Note that on windows, you must use the following instead:
"args": {"text": "cd /d \"${fileDirname}\"\u000D"}
This is because on Windows, the /d parameter must be used with cd to switch drives.
By default, the terminal will open at the folder that is opened in the Explorer. The hotkey for that depends on your operating system, in my case, on macOS, it's ⌃ + `, on Windows I think it's ctrl + j.
If you want to open at a specific folder you can change that behaviour with this setting:
{
"terminal.integrated.cwd": "/home/user"
}
If you want to open at the current file's directory you can install an extension like Terminal Here.
You can change the shortcuts/hotkeys for many actions on Code. For that open the Keyboard Shortcuts editor under File > Preferences > Keyboard Shortcuts and search for Toggle Integrated Terminal.
I looked at this link which talks about changing the default command shell in the integrated terminal of Visual Studio Code. I was able to change it to Git Bash using the below setting in the settings.json file. You can open settings.json file by pressing the Ctrl + , or from File → Preferences → Settings menu:
{
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
}
There is a + sign in the integrated terminal with the help of which you can have multiple terminals running parallelly as shown in the screenshot below:
I want to load a Git Bash shell in terminal # 1, Windows PowerShell in terminal # 2, and so on. What is the relevant configuration to achieve it?
No need to keep changing your default terminal setting. Install the Shell Launcher extension, configure it, and then ctrl-shift-t to select which terminal you want to open inside of VS Code.
As of June 17 '2018, things have become really smooth in Visual Studio (VS) Code when it comes to changing the integrated command shell. I'm enlisting all the options here:
Select a different command shell on the go - Name of the command shell is itself a command to switch the current command shell to the target command shell. For example, let's say my integrated command shell is currently showing Bash, and I want to switch to PowerShell. Then type powershell command and press Enter. The command shell will change to PowerShell. Similarly it works for all other types of command shells installed in VS Code.
More instances of command shell - Press Ctrl + Shift + `(back-tick). Every time you press the keyboard shortcut combination, a new instance of the command shell will get added.
Change the configuration of default command shell type - Press F1 in Visual Studio Code and type or select Terminal: Select Default Shell as shown in the snapshot below.
Once selected, then choose the default command shell of your choice to change the settings permanently:
In recent version (1.15.0) you can
change the settings, then run the terminal, you've set
then change the settings again and run the another type of terminal by pressing the + sign
and so on...
You can put this in your settings file, and uncomment which one you need.
// 64-bit cmd if available, otherwise 32-bit
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\cmd.exe"
// 64-bit PowerShell if available, otherwise 32-bit
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe"
// Git Bash
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
// Bash on Ubuntu (on Windows)
//"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
Click on Arrow then click something like Select template profile
so then , will Open the search bar automatically, so... change by your choice
Terminal profiles is what you are looking for - https://code.visualstudio.com/docs/terminal/profiles. It didn't exist by the time the question was posted and the only solution by that time was the somewhat limited "terimnal.integrated.terminal.xxx" solution.
Example configuration:
"terminal.integrated.profiles.windows": {
"Cmd": {
"path": "C:\\Windows\\System32\\cmd.exe",
"icon": "terminal-cmd"
},
"GitBash": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe", "icon": "terminal-bash",
"icon": "terminal-bash"
},
"PowerShell": {
"path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
"icon": "terminal-powershell"
},
},
I'm using vscode in Windows 10 as my code editor, and want to make an easy way to launch it with the correct conda env to allow debugging.
Currently I am having to open a command prompt, then activate the conda env, then paste the shortcut to vscode into the prompt to execute. Like so:
cmd
activate env-name
"C:\Program Files (x86)\Microsoft VS Code\Code.exe"
I have tried creating a batch file to wrap these calls, but unfortunately once I call "source activate" to start the conda env, the batch commands after this are not executed as it is considered another instance.
Any tips? Other than writing a vscode extension to handle this (which I'm seriously tempted to do, but it's such a simple problem...)
You might want to run source activate env-name as a task in visual studio.
https://code.visualstudio.com/Docs/editor/tasks
tasks.json
{
"version": "0.1.0",
"command": "cmd",
"isShellCommand": true,
"suppressTaskName": true,
"args": [],
"tasks": [
{
"taskName": "development",
"args": ["source", "activate", "env-name"]
}
]
}
The best option I found is to set the python.venvPath parameter in vscode settings to your anaconda envs folder.
"python.venvPath": "/Users/[...]/Anaconda3/envs"
Then if you bring up the command palette (ctl + shift + P on windows/linux, cmd + shift + P on mac) and type Python: Select Workspace Interpreter all your envs will show up and you can select which env to use.
The python extension will also need to be installed for the Select Workspace Interpreter option.
Note: The Select Workspace Interpreter takes around 10 seconds to come up on my computer using the current version of VSCode. My answer was originally posted here.
Using Conda 4.7.5, I was able to change the Target under the VsCode taskbar shortcut Properties from:
"C:\Users\Paul.siersma\AppData\Local\Programs\Microsoft VS Code\Code.exe"
To:
C:\Users\Paul.siersma\Anaconda3\_conda.exe run -p C:\Users\Paul.siersma\Anaconda3 "C:\Users\Paul.siersma\AppData\Local\Programs\Microsoft VS Code\Code.exe"
This uses the run command (marked experimental) and starts VSCode using the base Conda environment. You could specify another environment by changing the -p flag to the environment location eg -p [..]\Anaconda3\envs\myenv