✂️ Lesson 10 of 40 Productivity Beginner

Snippets & Emmet Abbreviations

Snippets and Emmet let you write boilerplate code in a fraction of the keystrokes. Master these tools and your typing speed becomes nearly irrelevant.

25% complete

1Using Built-In Snippets

Type a snippet prefix and press Tab (or select from IntelliSense). VS Code ships with snippets for most languages. Try for in JavaScript, def in Python, or ctor in C#. Use Tab to jump between editable placeholders.

2Creating Custom Snippets

Open File › Preferences › Configure Snippets and choose a language. Snippets use a JSON format with $1, $2 tab stops and $TM_FILENAME variables:

typescript.json — custom snippet
"React FC": {
  "prefix": "rfc",
  "body": [
    "import React from 'react';",
    "",
    "const $1: React.FC = () => {",
    "  return 
$2
;"
, "};", "", "export default $1;" ] }

3Emmet for HTML & CSS

Emmet is built into VS Code for HTML and CSS files. Type an abbreviation and press Tab to expand it. Examples:

  • ul>li*5 → a <ul> with 5 <li> items
  • div.container>h1+p → div with a heading and paragraph
  • a[href='#']{Click me} → anchor with text
  • m0-a in CSS → margin: 0 auto

4Emmet in JSX / TSX

Enable Emmet in React files by adding this to your settings:

settings.json
"emmet.includeLanguages": {
  "javascript": "javascriptreact",
  "typescript": "typescriptreact"
}

5Tab Stops & Mirror Editing

Inside a snippet, $1, $2… are tab stops. ${1:defaultText} gives a stop a default value. If you use the same variable name twice it becomes a mirror — editing one updates all instances simultaneously.

💡 Tip: Install the ES7+ React/Redux/React-Native snippets extension for a complete library of React snippets like rafce, useState, and more.

All 40 Lessons
Pick any lesson to jump straight to it.
L01
Getting Started with VS Code
FoundationBeginner
L02
The VS Code Interface & Layout
FoundationBeginner
L03
Installing & Managing Extensions
ExtensionsBeginner
L04
Keyboard Shortcuts & Command Palette
ProductivityBeginner
L05
Settings, Themes & Customization
CustomizationBeginner
L06
IntelliSense & Code Completion
Editor FeaturesBeginner
L07
Integrated Terminal Mastery
ProductivityBeginner
L08
Search, Find & Replace Across Files
Editor FeaturesBeginner
L09
Git & Source Control with VS Code
Version ControlBeginner
L10
Snippets & Emmet Abbreviations
ProductivityBeginner
L11
GitHub Copilot — Getting Started
AI & CopilotIntermediate
L12
Copilot Chat & Inline Ask
AI & CopilotIntermediate
L13
JavaScript & TypeScript Development
LanguagesIntermediate
L14
Python Development in VS Code
LanguagesIntermediate
L15
Debugging Like a Pro
DebuggingIntermediate
L16
Linting, Formatting & ESLint
Code QualityIntermediate
L17
Multi-Cursor Editing & Refactoring
Editor FeaturesIntermediate
L18
Workspaces & Multi-Root Projects
WorkspaceIntermediate
L19
Tasks, Build Systems & npm Scripts
WorkflowIntermediate
L20
Testing with Jest, Vitest & Pytest
TestingIntermediate
L21
React Development Workflow
Web DevIntermediate
L22
Node.js & Express in VS Code
BackendIntermediate
L23
Docker & Dev Containers
DevOpsIntermediate
L24
Live Share — Real-Time Collaboration
CollaborationIntermediate
L25
Jupyter Notebooks in VS Code
Data ScienceIntermediate
L26
REST Client & API Testing
API DevIntermediate
L27
SSH Remote Development
Remote DevIntermediate
L28
WSL 2 Integration on Windows
Remote DevIntermediate
L29
Advanced Debugging: Breakpoints & Watch
DebuggingAdvanced
L30
Copilot Agent Mode — Agentic Workflows
AI & CopilotAdvanced
L31
Profile & Performance Optimisation
PerformanceAdvanced
L32
GitHub Actions & CI/CD Integration
DevOpsAdvanced
L33
Custom Keybindings & Key Maps
CustomizationAdvanced
L34
Settings Sync & Dotfiles Management
WorkflowAdvanced
L35
Language Server Protocol (LSP) Explained
InternalsAdvanced
L36
Rust Development in VS Code
LanguagesAdvanced
L37
Go Development in VS Code
LanguagesAdvanced
L38
GitHub Codespaces & vscode.dev
Remote DevExpert
L39
Writing Your First VS Code Extension
Extension DevExpert
L40
Pro VS Code Workflow & Mastery
MasteryExpert