How to use VSCode with WSL (Windows Subsystem for Linux)
Aug 01, 2025 am 06:26 AM- Install WSL and a Linux distribution by running wsl --install in PowerShell as Administrator, then restart and set up the Linux distribution. 2. Install the "Remote - WSL" extension in VSCode to enable integration with WSL. 3. Open a project in WSL by launching the WSL terminal, navigating to the project folder, and running code ., which connects VSCode directly to the WSL environment. 4. When using code . in WSL, VSCode automatically installs a server in Linux, edits files in the Linux file system, uses the Linux terminal and tools, and avoids permission issues by preventing editing via Windows apps. 5. Access WSL files from Windows via \wsl$\Ubuntu\home..., but only edit them through VSCode or Linux tools, or work on Windows files from WSL using /mnt/c/, though with potential performance and permission limitations, while best practice is to keep projects inside the WSL file system like ~/projects. 6. Set WSL as the default terminal in VSCode by opening the Command Palette, running "Terminal: Select Default Profile", and choosing WSL Bash. 7. Debugging and development tools work seamlessly in the Linux environment, with support for Node.js, Python, Go, Git, linters, and formatters, provided the necessary tools are installed in WSL, such as Node.js via the provided installation commands. Additionally, keep WSL updated with wsl --update, use wsl --shutdown to reset if needed, configure .wslconfig for resource limits, and enable VSCode Settings Sync for consistent preferences, resulting in a smooth development experience combining Windows usability with full Linux functionality for development.
Using VSCode with WSL (Windows Subsystem for Linux) is a powerful setup for developers who want to work in a Linux environment while staying on Windows. It gives you access to Linux tools, packages, and the bash shell, while still using VSCode’s familiar interface. Here’s how to set it up and use it effectively.

1. Install WSL and a Linux Distribution
First, make sure WSL is installed and running:
-
Open PowerShell as Administrator and run:
wsl --install
This command installs WSL and the default Linux distribution (usually Ubuntu).
If you want a specific distribution, run:
wsl --list --online wsl --install -d <DistributionName>
For example:
wsl --install -d Ubuntu
After installation, restart your computer.
Launch the installed Linux distribution from the Start menu to complete setup (create a username and password).
2. Install the VSCode Remote - WSL Extension
VSCode uses an extension to connect to WSL:
- Open VSCode.
- Go to the Extensions view (
Ctrl Shift X
). - Search for "Remote - WSL" (by Microsoft).
- Install it.
This extension allows VSCode to open folders inside WSL and run commands in the Linux environment.
3. Open a Project in WSL
Once the extension is installed:
Open WSL terminal:
wsl
Navigate to your project directory:
cd ~/projects/myapp
Type in the terminal:
code .
This launches VSCode and connects it directly to the WSL environment.
? You’ll notice a green label in the bottom-left corner of VSCode showing something like
WSL: Ubuntu
. That means you're working inside WSL.
4. What Happens When You Use code .
in WSL
When you run code .
inside WSL:
- VSCode detects WSL and automatically installs a small VSCode Server inside your Linux distribution (happens once).
- Your files are edited directly in the Linux file system (e.g.,
\\wsl$\Ubuntu\home\...
), not in Windows folders. - The integrated terminal in VSCode defaults to bash (or your WSL shell).
- Tools like
npm
,python
,gcc
, etc., use the Linux versions and dependencies.
?? Avoid editing files in the Linux filesystem using Windows apps (like File Explorer or Notepad), as this can cause permission or locking issues.
5. Access WSL Files from Windows (Optional)
You can access your WSL files from Windows via:
\\wsl$\Ubuntu\home\yourname\
But again, it's safer to edit WSL files only from within VSCode (using the Remote-WSL connection) or Linux tools.
Alternatively, if you want to work on Windows files from WSL:
- You can access Windows files at
/mnt/c/
,/mnt/d/
, etc. - But performance may be slower, and file permissions are limited.
? Best practice: Keep projects inside the WSL file system (e.g.,
~/projects
) for full Linux compatibility.
6. Use WSL as Default Terminal in VSCode
To make the WSL shell your default terminal in VSCode:
- Open VSCode Command Palette (
Ctrl Shift P
) - Run: Terminal: Select Default Profile
- Choose WSL Bash (or your WSL shell)
- Now, when you open a new terminal (`Ctrl ``), it starts in WSL.
7. Debugging and Tools Work Seamlessly
With VSCode connected to WSL:
- You can run and debug Node.js, Python, or Go apps using Linux paths and dependencies.
- Git uses your Linux config and SSH keys.
- Linters, formatters, and language servers run in the Linux environment.
Just make sure tools are installed in WSL:
# Example: Install Node.js in WSL curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs
Then VSCode will automatically detect them.
Tips for Better Experience
-
Keep WSL updated: Run
wsl --update
occasionally. -
Shutdown WSL when needed: Use
wsl --shutdown
in PowerShell to reset if things hang. -
Use
.wslconfig
to limit memory or CPU usage if WSL slows down your system. - Sync settings: Use VSCode Settings Sync so your extensions and preferences carry over across environments.
Basically, once set up, you get the best of both worlds: Windows for daily use and WSL VSCode for development. The integration is smooth, and most things just work out of the box.
The above is the detailed content of How to use VSCode with WSL (Windows Subsystem for Linux). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The steps to build a Laravel environment on different operating systems are as follows: 1.Windows: Use XAMPP to install PHP and Composer, configure environment variables, and install Laravel. 2.Mac: Use Homebrew to install PHP and Composer and install Laravel. 3.Linux: Use Ubuntu to update the system, install PHP and Composer, and install Laravel. The specific commands and paths of each system are different, but the core steps are consistent to ensure the smooth construction of the Laravel development environment.

In VSCode, you can use Git for code version fallback. 1. Use gitreset--hardHEAD~1 to fall back to the previous version. 2. Use gitreset--hard to fall back to a specific commit. 3. Use gitrevert to safely fall back without changing history.

Configuring the Ruby development environment in VSCode requires the following steps: 1. Install Ruby: Download and install from the official website or using RubyInstaller. 2. Install the plug-in: Install CodeRunner and Ruby plug-ins in VSCode. 3. Set up the debugging environment: Install the DebuggerforRuby plug-in and create a launch.json file in the .vscode folder for configuration. This way, you can write, run, and debug Ruby code efficiently in VSCode.

The steps to manually install the plug-in package in VSCode are: 1. Download the .vsix file of the plug-in; 2. Open VSCode and press Ctrl Shift P (Windows/Linux) or Cmd Shift P (Mac) to call up the command panel; 3. Enter and select Extensions:InstallfromVSIX..., then select .vsix file and install. Manually installing plug-ins provides a flexible way to install, especially when the network is restricted or the plug-in market is unavailable, but attention needs to be paid to file security and possible dependencies.

Configuring VSCode to synchronize code with GitHub can improve development efficiency and team collaboration. First, install the "GitHubPullRequestsandIssues" and "GitLens" plugins; second, configure the GitHub account; then clone or create a repository; finally, submit and push the code to GitHub.

Best practices for writing JavaScript code in VSCode include: 1) Install Prettier, ESLint, and JavaScript (ES6) codesnippets extensions, 2) Configure launch.json files for debugging, and 3) Use modern JavaScript features and optimization loops to improve performance. With these settings and tricks, you can develop JavaScript code more efficiently in VSCode.

I have a lot of experience in participating in VSCode offline technology exchange activities, and my main gains include sharing of plug-in development, practical demonstrations and communication with other developers. 1. Sharing of plug-in development: I learned how to use VSCode's plug-in API to improve development efficiency, such as automatic formatting and static analysis plug-ins. 2. Practical demonstration: I learned how to use VSCode for remote development and realized its flexibility and scalability. 3. Communicate with developers: I have obtained skills to optimize VSCode startup speed, such as reducing the number of plug-ins loaded at startup and managing the plug-in loading order. In short, this event has benefited me a lot and I highly recommend those who are interested in VSCode to participate.

VSCode solves the problems of multilingual project coding and garbled code including: 1. Ensure that the file is saved with correct encoding and use the "redetection encoding" function; 2. Set the file encoding to UTF-8 and automatically detect the encoding; 3. Control whether to add BOM; 4. Use the "EncodingConverter" plug-in to convert encoding; 5. Use the multiple workspace functions to set encoding for different sub-projects; 6. Optimize performance and ignore unnecessary file monitoring. Through these steps, the coding problem of multilingual projects can be effectively dealt with.
