✏️ Lesson 17 of 40 Editor Features Intermediate

Multi-Cursor Editing & Refactoring

Multi-cursor editing lets you make the same change in multiple places simultaneously. Combined with VS Code's refactoring tools, it is one of the most time-saving features in the editor.

42% complete

1Adding Cursors

Multi-cursor shortcuts
Alt+Click         Add a cursor at click position
Ctrl+Alt+Up/Down  Add cursor above / below
Ctrl+D            Select next occurrence of word
Ctrl+Shift+L      Select ALL occurrences
Ctrl+U            Undo last cursor operation

2Column (Box) Selection

Hold Shift+Alt and drag to select a rectangular block of text. This is perfect for editing columns of data — you can type and all selected columns update at once. You can also use Shift+Alt+Down to extend the selection row by row.

3Rename Symbol

Press F2 on any variable, function or class name to rename it across your entire project — including all imported files. VS Code uses the language server to find every reference safely, unlike a raw text find-replace.

4Extract to Function / Variable

Select any expression, right-click → RefactorExtract to Constant or Extract to Function. VS Code creates the new symbol and replaces the selection with a reference to it automatically.

5Move to New File

Right-click a class or function → RefactorMove to New File. VS Code creates a new file, moves the symbol, and updates all imports across the project. A huge time-saver when reorganising a codebase.

💡 Tip: Ctrl+Shift+L (select all occurrences) is your fastest way to rename something when F2 is unavailable — for example, inside template strings or comments.

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