start ubuntu as terminal in project folder - visual-studio-code

I added the following line to my settings in VSCode:
"terminal.integrated.shell.windows": "C:\\Users\\bd\\AppData\\Local\\Microsoft\\WindowsApps\\ubuntu.exe"
When I now start a terminal ubuntu is started in my user's home folder. How is it possible to start ubuntu in the project folder?
The thing is wsl can start any linux that I set using wsl /setdefault I dont like to rely on such a setting but want to specify the one I want to start. I want it started in the project's folder.
Edit:
I change into some project directory and call wslconfig.exe /s Legacy. When I now invoke wsl Bash is started in the current folder.
I return to cmd and call wslconfig.exe /s Ubuntu. When I now call wsl Store Ubuntu is started in the current folder.
wsl.exe seems to start Ubuntu differently than ubuntu.exe does. ubuntu.exe always starts in the user's home dir.

I assume that what you want to run in the VSCode terminal is the Windows Subsystem for Linux (in particular the Ubuntu variant).
To do so, you should run wsl.exe, using this setting:
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\wsl.exe",
This will start up a Windows Subsystem for Linux shell inside the terminal. If you have installed Ubuntu, that is what will be run.

Related

Cygwin terminal on VSC does not start from current directory

for some reason every time I open a new Cygwin terminaln on VSC, the working directory is set to /home/User by default. Buy I would want the working directory to be set, by default, to the path I am opening the Cygwin terminal from. I have installed the Cygwin terminal on VSC using Shell Launcher (Extension).

nvm and gulp found on Visual Code terminal but not on linux terminal

I have Ubuntu LTS 20.04 running on wsl2 in Windows, this way I'm able to compile my JS/React code and run my php server in linux and use windows to code using Visual Studio Code.
This is running great, but a strange thing is happening, I installed nvm and gulp through the Visual Studio Code terminal and if I use them on the terminal it works fine but not if I do it outside the terminal (using Windows terminal), it says not found for both gulp and nvm.
I assume VSCode is adding a few things to the PATH but I don't know what to do for them to be found by the windows terminal (outisde VSCode terminal). Screen below. On the left is the result of running nvm list inside VS Code terminal and on the right on Ubuntu terminal, which can't find.
I'm a bit confused by your question. It sounds like you're installing programs on Windows through the VSCode terminal, and then trying to run them on Windows but it's not working. But then your screenshot shows the WSL Ubuntu prompt failing to find the command. Assuming you want to run these under WSL, log in to WSL Ubuntu and run this:
find / -name nvm
If you actually want to use the Windows terminal to run the program, you'll have to find where it is installed in Windows and make sure that's in your %PATH% but this doesn't seem like it's what you're trying to do.
The correct answer was provided by the comment from MindSwipe.
On VSCODE terminal if I "echo $PATH" it has the nvm directory in it while the $PATH on WSL doesn't, I assume VSCODE alters its own terminal PATH when the tools are installed using it instead of the global WSL path.
I've changed the WSL path and it's now working, how can I present the bounty to MindSwipe ?

Selecting Python interpreter from WSL

I am using Windows 10 and want to set the the default VSCode interpreter for Python to be the same one used in my WSL 2 (Ubuntu), so that I'm always using "one Python".
When I click "Select Python interpreter" a prompt appears to find the interpreter path, but I'm not sure what the path would be.
I think that, in order to use the WSL python, you need to be running VSCode in a WSL remote window. You need to install the Remote WSL extension first. Then, on the lower left there is a green button that will let you start a WSL window, or it will tell you that you are already in one.
If you are in a WSL window, you should be able to select your python interpreter pretty easily. It will either automatically detect it, or you can run which python3 in an Ubuntu terminal to get the path. If you want to navigate to a file on your Windows file system from within this window, look in, e.g., /mnt/c/Users/<USER_NAME>.
Well probably late to the party but you can find Python you are using on your WSL2 with simple command:
which python3
It will show you where is the python placed.
While above answers work, there are some related things to keep in mind here (or are at least worth mentioning):
I would recommend to create a virtual environment for your project. If you do so, its very easy to find the python interpreter in the bin folder of the venv. (If you want to "find" your WSL folder in windows. Just enter explorer.exe . in your terminal - it will open a windows explorer in the current location.
If you open the python interpreter selector form within VS Code on Windows, be aware that it opens a windows that let's you select "Executables" (meaning WINDOWS wxecutables):
You will not be able to open your python interpreter located in your wsl like that, as the folder will be shown as empty.

Ubuntu on Windows as VS Code terminal - executable path

There is a related question but it details the approach for WSL, in newer versions of Windows, the Linux distributions are not beta anymore and they are provided through the MS app store.
Where do I find the path to Ubuntu on Windows executable? (Not WSL.) I tried right-clicking on the icon to find Properties, but it is not there, it seems to be some special kind of a shortcut.
If you have multiple distros installed, you can read this how to launch one individually.
https://msdn.microsoft.com/en-us/commandline/wsl/wsl-config
However if you only have 1 installed, it will pick that one by default
There are three ways to launch and run WSL:
wsl.exe or bash.exe
wsl -c [command] or bash -c [command]
[distro] ie ubuntu -- this is the same as launching the installed app from the Windows menu.
In the first two cases, WSL must pick a distribution to run - a default distribution. If you don't explicitly set a default, it will be the first one installed.
So you can continue to simply use bash.exe
Open VSCode Settings Ctrl + , or File > Prefrences > Settings
User Settings will open up. Add the following in that file:
"terminal.integrated.shell.windows": "C:\Windows\System32\bash.exe"
Save and close the user settings file.
Enjoy bash in VSCode!

Cannot start Canopy's IPython from Windows command shell

I have been using EPD for some time and recently started using Canopy. So now I have both EPD and Canopy installed on my machine, which runs Windows 7 Pro x64. But I just realized I cannot launch Canopy's IPython interactive session (located in the directory C:\Users\User\AppData\Local\Enthought\Canopy\User\Scripts) in a Windows command prompt. I already added this directory to my Path before the EPD's python directory.
I checked out those files in the directory .../Canopy/User/Scripts/, I believe that problem is not with the file "ipython-script.py" there, but with the file "ipython.exe", which is what will be run when I simply type "ipython" in a Windows command shell (I set the path already).
In a Windows command shell, if I changed to the directory .../Canopy/User/Scripts/ and type up "python ipython-script.py", then I can correctly start the IPython session in the command shell. So, it looks like that "ipython.exe" does not run the script "ipython-script.py"...
Has anyone run into this same problem? Is there an easy fix?
P.S. I already had the latest Canopy (version 1.0.1.1160) installed.
Thanks for any help.
If you want to launch web interactive then the command
ipython notebook in windows shell or in canopy shell works.