Guide for changing your dev environment from Mac to Windows
Article
The following tips and control equivalents should help you in your transition between a Mac and Windows (or WSL/Linux) development environment.
For app development, the nearest equivalent to Xcode would be Visual Studio. There is also a version of Visual Studio for Mac, if you ever feel the need to go back. For cross-platform source code editing (and a huge number of plug-ins) Visual Studio Code is the most popular choice.
Select more than one item in a list (noncontiguous)
Command, then click each item
Control, then click each item
Type special characters
Option+ character key
Alt+ character key
Trackpad shortcuts
Note
Some of these shortcuts require a "Precision Trackpad", such as the trackpad on Surface devices and some other third-party laptops.
Trackpad options are configurable on both platforms.
Operation
Mac
Windows
Scroll
Two finger vertical swipe
Two finger vertical swipe
Zoom
Two finger pinch in and out
Two finger pinch in and out
Swipe back and forward between views
Two finger sideways swipe
Two finger sideways swipe
Switch virtual workspaces
Four fingers sideways swipe
Four fingers sideways swipe
Display currently open apps
Four fingers upward swipe
Three fingers upward swipe
Switch between apps
N/A
Slow three finger sideways swipe
Go to desktop
Spread out four fingers
Three finger swipe downwards
Open Cortana / Action center
Two finger slide from right
Three finger tap
Open extra information
Three finger tap
N/A
Show launchpad / start an app
Pinch with four fingers
Tap with four fingers
Command-line shells and terminals
Windows supports several command-line shells and terminals which sometimes work a little differently to the Mac's BASH shell and terminal emulator apps like Terminal and iTerm.
Windows shells
Windows has two primary command-line shells:
PowerShell - PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language built on .NET. Using PowerShell, administrators, developers, and power-users can rapidly control and automate tasks that manage complex processes and various aspects of the environment and operating system upon which it is run. PowerShell is fully open-source, and because it is cross-platform, also available for Mac and Linux.
Mac and Linux BASH shell users: PowerShell also supports many command-aliases that you are already familiar with. For example:
List the contents of the current directory, using: ls
Move files with: mv
Move to a new directory with: cd <path>
Some commands and arguments are different in PowerShell vs. BASH. Learn more by entering: get-help in PowerShell or checkout the compatibility aliases in the docs.
To run PowerShell as an Administrator, enter "PowerShell" in your Windows start menu, then select "Run as Administrator."
Windows Command Line (Cmd): Windows still ships the traditional Command Prompt (and Console – see below), providing compatibility with current and legacy MS-DOS-compatible commands and batch files. Cmd is useful when running existing/older batch files or command-line operations, but in general, users are recommended to learn and use PowerShell since Cmd is now in maintenance, and will not be receiving any improvements or new features in the future.
Linux shells
Windows Subsystem for Linux (WSL) can now be installed to support running a Linux shell within Windows. This means that you can run bash, with whichever specific Linux distribution you choose, integrated right inside Windows. Using WSL will provide the kind of environment most familiar to Mac users. For example, you will ls to list the files in a current directory, not dir as you would with the traditional Windows Cmd Shell. To learn about installing and using WSL, see the Windows Subsystem for Linux Installation Guide. Linux distributions that can be installed on Windows with WSL include:
In addition to many 3rd party offerings, Microsoft provides two "terminals" – GUI applications that provide access to command-line shells and applications.
Windows Terminal: Windows Terminal is a new, modern, highly configurable command-line terminal application that provides very high performance, low-latency command-line user experience, multiple tabs, split window panes, custom themes and styles, multiple "profiles" for different shells or command-line apps, and considerable opportunities for you to configure and personalize many aspects of your command-line user experience.
You can use Windows Terminal to open tabs connected to PowerShell, WSL shells (like Ubuntu or Debian), the traditional Windows Command Prompt, or any other command-line app (e.g. SSH, Azure CLI, Git Bash).
Console: On Mac and Linux, users usually start their preferred terminal application which then creates and connects to the user's default shell (e.g. BASH).
However, due to a quirk of history, Windows users traditionally start their shell, and Windows automatically starts and connects a GUI Console app.
While one can still launch shells directly and use the legacy Windows Console, it's highly recommended that users instead install and use Windows Terminal to experience the best, fastest, most productive command-line experience.
Apps and utilities
App
Mac
Windows
Settings and Preferences
System Preferences
Settings
Task manager
Activity Monitor
Task Manager
Disk formatting
Disk Utility
Disk Management
Text editing
TextEdit
Notepad
Event viewing
Console
Event Viewer
Find files/apps
Command+Space
Windows key
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Windows developer feedback
Windows developer is an open source project. Select a link to provide feedback:
In this module, you learn how to use the Windows Subsystem for Linux (WSL) with Visual Studio Code (VS Code). We explore the installation process and the basics of using WSL. Additionally, we install and utilize the Visual Studio Code WSL extension. Finally, we demonstrate how to debug and run Python code in VS Code within our WSL environment.