Core editor features

Visual Studio Code is a cross-platform code editor that combines a focused editing experience with the tools you need across the development lifecycle. Use it to make a quick change to a single file or open a complete project and move from editing to running, debugging, testing, and source control without switching applications.

This overview introduces the concepts behind the core editor capabilities and directs you to the detailed documentation for each part of your workflow.

Learn the editor basics

New to VS Code? Follow the hands-on tutorial to explore the editor and complete a coding task.

One editor for your development workflow

VS Code does not prescribe a programming language, operating system, or set of development tools. Instead, it provides a consistent workbench that adapts to your project:

  • Work in one place. Access your files, code intelligence, terminal, source control, debugger, and tests from the same window. The tools share project context, so you can move between writing code and validating a change with less friction.
  • Bring your tools and technology stack. Use your existing compilers, command-line tools, shells, and source control workflows. Install extensions to add rich support for almost any programming language, framework, or service.
  • Work where your code runs. Develop on your local computer, connect to a remote machine or container, or make lightweight changes with VS Code for the Web.
  • Make the editor your own. Customize the layout, keyboard shortcuts, and behavior, then use profiles to switch between configurations for different projects or tasks.

Explore the core capabilities

Get oriented

The VS Code window is called the workbench. The user interface centers on the editor and provides dedicated views for files, search, source control, running and debugging, and extensions. The Activity Bar switches between these views, while the Panel hosts supporting tools such as the terminal, Problems view, and debug console.

A workspace represents the project you have open. A workspace can contain one or more folders and gives VS Code the context to restore your open files and layout, apply project-specific settings, and store task and debug configurations. You can also open an individual file when you do not need project context.

Edit code

The editor combines general text-editing features with language-aware assistance. Use basic editing features such as multiple cursors, search and replace, and automatic save in any text file. For supported programming languages, IntelliSense uses information about your code to provide completions, parameter information, and inline documentation.

Code navigation helps you move between definitions, references, and symbols across a project. You can transform code with language-aware refactoring tools and reuse common code with snippets. These capabilities come from built-in language support and extensions, so the exact features vary by language. Visit the language documentation to set up support for your technology stack.

Run, debug, and test

Running, debugging, and testing form a continuous loop as you make changes. VS Code brings each activity into the workbench while continuing to use the tools and runtimes from your project.

Automate builds, scripts, and other recurring commands with tasks. Use the debugger to control program execution with breakpoints, step through code, and inspect application state. The Testing view uses testing extensions to discover tests and lets you run, debug, and review results alongside your code.

Manage source control

Integrated source control keeps the history and state of your project close to the code. See which files changed, review inline differences, and move between edits and source control operations without losing context.

VS Code includes Git support for reviewing, staging, and committing changes, managing branches and worktrees, and resolving merge conflicts. You can also collaborate on GitHub, and extensions can add support for other source control systems.

Use the integrated terminal

The integrated terminal runs a full shell inside the workbench, so you can use the same command-line tools and workflows you use in an external terminal. New terminals start in the context of your workspace, and you can keep multiple terminals open, split them, or move them into the editor area.

Choose and configure your preferred shell with terminal profiles. Shell integration adds awareness of commands and their output for navigation, command status, and other editor features. You can also personalize the terminal appearance.

Customize and extend the editor

VS Code starts with useful defaults but lets you control how the editor looks and behaves. Change the layout, remap keyboard shortcuts, and configure settings globally or for a specific workspace.

Extensions add languages, debuggers, source control providers, and connections to external tools and services. Create profiles to switch between sets of extensions, settings, and user interface customizations for different projects or tasks. Use Settings Sync to share your configuration across devices.

Next steps