IDE Shortcuts Comparison — VS Code, IntelliJ, Vim, Emacs, Sublime Text Side-by-Side
Keyboard shortcuts are the foundation of editor efficiency. This comprehensive comparison maps the most important operations across five major editors — VS Code, IntelliJ IDEA, Vim, Emacs, and Sublime Text — so you can switch between them or find the fastest way to accomplish any task.
What You’ll Learn
You’ll find the correct shortcut for any common operation in each editor, understand the design philosophy behind each editor’s keyboard model, and be able to transfer your muscle memory when switching editors. DodaTech developers regularly work in multiple editors, and this reference saves hours of “how do I do X in Y?”
Why Shortcuts Matter
Every second spent reaching for the mouse is a second of interrupted flow. Professional developers aim for 200+ keystrokes per minute with zero mouse usage. Learning the right shortcuts for your primary editor doubles your editing speed. Knowing shortcuts across editors makes you adaptable in any environment.
Learning Path
flowchart LR
A[Choose Your Editor] --> B[Master Core Shortcuts]
B --> C[Learn Editor-Specific Features]
C --> D[Cross-Editor Proficiency<br/>You are here]
style D fill:#f90,color:#fff
File Operations
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Open file | Ctrl+P | Ctrl+Shift+N | :e file | C-x C-f | Ctrl+P |
| Open recent | Ctrl+R | Ctrl+E | :browse old | C-x C-r | Ctrl+Alt+P |
| Save | Ctrl+S | Ctrl+S | :w | C-x C-s | Ctrl+S |
| Save all | Ctrl+K S | Ctrl+Shift+S | :wa | C-x s | — |
| Close file | Ctrl+W | Ctrl+F4 | :q | C-x k | Ctrl+W |
| New file | Ctrl+N | Alt+Insert | :e newfile | C-x C-f (new name) | Ctrl+N |
Cursor Movement
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Character left/right | Arrows | Arrows | h / l | C-b / C-f | Arrows |
| Word left/right | Ctrl+Left/Right | Ctrl+Left/Right | b / w | M-b / M-f | Alt+Left/Right |
| Line start/end | Home/End | Home/End | 0 / $ | C-a / C-e | Home/End |
| File start/end | Ctrl+Home/End | Ctrl+Home/End | gg / G | M-< / M-> | Ctrl+Home/End |
| Go to line | Ctrl+G | Ctrl+G | :42 | M-g g | Ctrl+G |
| Go to symbol | Ctrl+Shift+O | Ctrl+F12 | gd (definition) | M-. | Ctrl+R |
| Go to definition | F12 | Ctrl+B | gd | M-. | — |
| Go back | Alt+Left | Ctrl+Alt+Left | Ctrl+O | C-x ` | — |
Editing
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Cut line | Ctrl+X | Ctrl+Y | dd | C-a C-k | Ctrl+X |
| Copy line | Ctrl+C | Ctrl+D | yy | M-w | Ctrl+C |
| Paste | Ctrl+V | Ctrl+V | p | C-y | Ctrl+V |
| Delete line | Ctrl+Shift+K | Ctrl+Y | dd | C-a C-k | Ctrl+Shift+K |
| Duplicate line | Alt+Shift+Down | Ctrl+D | yyp | C-a C-k C-y C-y | Ctrl+Shift+D |
| Move line up/down | Alt+Up/Down | Ctrl+Shift+Up/Down | :m +1 / :m -2 | C-x C-t | Ctrl+Shift+Up/Down |
| Indent / outdent | Tab / Shift+Tab | Tab / Shift+Tab | >> / << | C-M-\\ / C-M-{ | Tab / Shift+Tab |
| Comment toggle | Ctrl+/ | Ctrl+/ | gc (vim-commentary) | M-; | Ctrl+/ |
| Block comment | Shift+Alt+A | Ctrl+Shift+/ | — | C-M-; | Ctrl+Shift+/ |
Selection
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Select all | Ctrl+A | Ctrl+A | ggVG | C-x h | Ctrl+A |
| Select line | Ctrl+L | — | V | C-a C-SPC C-e | Ctrl+L |
| Select word | Ctrl+D | Ctrl+W | viw | M-f M-b | Ctrl+D |
| Column select | Shift+Alt+Drag | Alt+Shift+Insert | Ctrl+V | C-x r k | Shift+Right-click |
| Expand selection | Shift+Alt+Right | Ctrl+W | — | — | Ctrl+Shift+Space |
| Multi-cursor | Alt+Click | Alt+Shift+G | — | — | Ctrl+Click |
| Select all occurrences | Ctrl+Shift+L | Ctrl+Alt+Shift+J | — | — | Alt+F3 |
Search and Replace
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Find | Ctrl+F | Ctrl+F | /pattern | C-s | Ctrl+F |
| Find in files | Ctrl+Shift+F | Ctrl+Shift+F | :vimgrep | M-x rgrep | Ctrl+Shift+F |
| Find and replace | Ctrl+H | Ctrl+R | :%s/old/new/g | M-x replace-string | Ctrl+H |
| Find next / prev | F3 / Shift+F3 | F3 / Shift+F3 | n / N | C-s / C-r | F3 / Shift+F3 |
| Go to file | Ctrl+P | Ctrl+Shift+N | :e | C-x C-f | Ctrl+P |
| Go to definition | F12 | Ctrl+B | gd | M-. | — |
Window and Tab Management
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Split editor | Ctrl+\ | Ctrl+Shift+A | :sp / :vsp | C-x 2 / C-x 3 | Alt+Shift+2 |
| Close split | Ctrl+W | Ctrl+Shift+F4 | Ctrl+W q | C-x 0 | Ctrl+W |
| Switch split | Ctrl+1/2/3 | Alt+1/2/3 | Ctrl+W w | C-x o | Ctrl+1/2/3 |
| Maximize split | Ctrl+K Z | Ctrl+Shift+Quote | Ctrl+W _ | C-x 1 | F11 |
| New tab | Ctrl+T | — | :tabnew | — | Ctrl+N |
| Switch tab | Ctrl+Tab | Alt+Right/Left | gt / gT | C-x <left> | Ctrl+Tab |
| Close tab | Ctrl+W | Ctrl+F4 | :tabclose | C-x k | Ctrl+W |
Debugging
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Start debug | F5 | Shift+F9 | — | M-x gdb | — |
| Stop debug | Shift+F5 | Ctrl+F2 | — | q | — |
| Add breakpoint | F9 | Ctrl+F8 | — | C-x SPC | — |
| Step over | F10 | F8 | — | n | — |
| Step into | F11 | F7 | — | s | — |
| Step out | Shift+F11 | Shift+F8 | — | fin | — |
| Continue | F5 | F9 | — | c | — |
| Evaluate | Ctrl+Shift+Y | Alt+F8 | — | p | — |
Terminal Integration
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Open terminal | `Ctrl+`` | Alt+F12 | :term | M-x term | Ctrl+Shift+P → Terminus |
| Switch to terminal | `Ctrl+`` | Alt+F12 | Ctrl+W N | C-x o | — |
| Run command | Ctrl+Shift+P | Ctrl+Shift+A | : | M-x | Ctrl+Shift+P |
Navigation and Refactoring
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Rename | F2 | Shift+F6 | :%s/old/new/gc | M-x query-replace | Ctrl+F2 |
| Extract method | — | Ctrl+Alt+M | — | — | — |
| Extract variable | — | Ctrl+Alt+V | — | — | — |
| Format code | Shift+Alt+F | Ctrl+Alt+L | == | C-M-\\ | Ctrl+Shift+R |
| Go to file member | Ctrl+Shift+O | Ctrl+F12 | — | M-x imenu | Ctrl+R |
| Find usages | Shift+F12 | Alt+F7 | :grep | M-x tags-search | — |
Customization
| Operation | VS Code | IntelliJ IDEA | Vim | Emacs | Sublime Text |
|---|---|---|---|---|---|
| Open settings | Ctrl+, | Ctrl+Alt+S | ~/.vimrc | ~/.emacs.d/init.el | Ctrl+, |
| Open keybindings | Ctrl+K Ctrl+S | Ctrl+Alt+S → Keymap | ~/.vimrc | ~/.emacs.d/init.el | Ctrl+K Ctrl+S |
| Command palette | Ctrl+Shift+P | Ctrl+Shift+A | — | M-x | Ctrl+Shift+P |
| Install extensions | Ctrl+Shift+X | Ctrl+Alt+S → Plugins | Plugin manager | M-x package-install | Ctrl+Shift+P → Install |
Editor Design Philosophies
Understanding the philosophy helps predict shortcuts you haven’t memorized:
VS Code — Command Palette First
- Philosophy: All features accessible through
Ctrl+Shift+P - Pattern: Start with the palette, learn the shortcut later
- Memory aid:
Ctrl+for most operations,Shiftadds behavior,Altfor per-line operations
IntelliJ IDEA — Context-Sensitive Actions
- Philosophy: Everything is an action with a shortcut
- Pattern:
Alt+Entershows all available actions at cursor position - Memory aid:
Ctrl+for file operations,Shift+for structural,Alt+for navigation
Vim — Modal with Mnemonic Operators
- Philosophy: Operators + motions = actions (
d+w= delete word) - Pattern: Verbs (
d,y,c) + nouns (w,b,G) + modifiers (i,a) - Memory aid: Every command is a sentence with verb + object
Emacs — Modifier Chord Based
- Philosophy: Everything is a keyboard chord
- Pattern:
C-for basic operations,M-for advanced,C-xfor file commands - Memory aid: Mnemonic:
C-f= forward,C-b= backward,C-n= next line,C-p= previous
Sublime Text — Mouse-Friendly but Keyboard-Powered
- Philosophy: Minimal UI with powerful keyboard shortcuts
- Pattern: Goto Anything (
Ctrl+P) is the central command - Memory aid:
Ctrl+for basics,Ctrl+Shift+for expansions,Ctrl+Alt+for editor-specific
Common Cross-Editor Mistakes
1. Using Editor-Specific Shortcuts in the Wrong Editor
Ctrl+D in VS Code selects next occurrence. In IntelliJ, it duplicates a line. In Sublime, it selects the current word. When switching editors, these muscle memory conflicts cause the most frustration.
2. Not Learning Modal Editing Enough
Many editors support Vim keybindings natively (VS Code, IntelliJ, Sublime with Vintage mode). Learning basic Vim navigation (hjkl, w/b, i, dd, yy, p) works across all editors with Vim emulation.
3. Ignoring the Command Palette
Every modern editor has a command palette. When you forget a shortcut, open the palette and search. VS Code: Ctrl+Shift+P, IntelliJ: Ctrl+Shift+A, Sublime: Ctrl+Shift+P, Emacs: M-x.
4. Not Customizing Keybindings
Default shortcuts may not suit your workflow. Every editor allows rebinding. VS Code and IntelliJ: keybindings.json. Vim: :map commands. Start by changing 3-5 shortcuts that conflict with your muscle memory.
5. Learning All Shortcuts at Once
Learn shortcuts incrementally. Pick 5 operations you do most frequently, learn their shortcuts in your editor, and practice until they’re automatic. Repeat weekly. Trying to learn 50 shortcuts in one day results in remembering none.
6. Using the Mouse for Common Operations
Every mouse click is a speed tax. Identify what you click most (opening files, switching between files, running code) and learn those shortcuts first. Install a key promoter plugin (VS Code) or Key Promoter X (IntelliJ) to get told when you click something that has a shortcut.
7. Not Using Editor-Specific Superpowers
Each editor has unique capabilities:
- VS Code: Multi-cursor, IntelliSense, integrated terminal
- IntelliJ: Structural search, extensive refactoring, profiling
- Vim:
.repeat, macros,:normalcommand - Emacs: Org-mode, TRAMP for remote editing, Dired
- Sublime: Goto Anything, minimap, distraction-free mode
Practice Questions
1. What’s the universal shortcut for open/command palette across editors?
VS Code: Ctrl+Shift+P, IntelliJ: Ctrl+Shift+A, Sublime: Ctrl+Shift+P, Emacs: M-x. All serve the same purpose — find and run any command.
2. How do you duplicate a line in each editor?
VS Code: Alt+Shift+Down, IntelliJ: Ctrl+D, Vim: yyp, Emacs: C-a C-k C-y C-y, Sublime: Ctrl+Shift+D.
3. Which editor has the most efficient approach to multi-cursor editing?
Sublime Text conceptually pioneered multi-cursor and still has the most polished implementation (Ctrl+Click, Alt+F3 for all occurrences). VS Code’s implementation is nearly as good with Alt+Click and Ctrl+Shift+L.
4. What is the core editing philosophy difference between Vim and Emacs? Vim is modal — separate modes for inserting text, navigating, and selecting. Emacs is modeless — every key is a command, using modifiers (Ctrl, Meta) for all operations. Vim favors mnemonics, Emacs favors consistency.
5. Challenge: You need to edit 100 configuration files, changing timeout = 30 to timeout = 60 in each. Which editor and method is fastest?
Answer: Vim with :args *.conf then :argdo %s/timeout = 30/timeout = 60/ge | update. Or VS Code with Ctrl+Shift+F to find all occurrences, then Ctrl+Shift+L to select all and edit simultaneously.
Mini Project: Create a Personal Shortcuts Reference
Create a custom cheat sheet for your primary and secondary editors:
# My Personal Shortcuts — VS Code (Primary) + Vim (Secondary)
## Top 5 Most Used (Must Know)
| Operation | VS Code | Vim |
|-----------|---------|-----|
| Open file | Ctrl+P | :e file |
| Save | Ctrl+S | :w |
| Find | Ctrl+F | /pattern |
| Multi-cursor | Alt+Click | — |
| Command palette | Ctrl+Shift+P | — |
## Top 5 Editing Operations
| Operation | VS Code | Vim |
|-----------|---------|-----|
| Duplicate line | Alt+Shift+Down | yyp |
| Delete line | Ctrl+Shift+K | dd |
| Comment | Ctrl+/ | gc |
| Format | Shift+Alt+F | == |
| Indent | Tab/Shift+Tab | >>/<< |
## Top 5 Navigation
| Operation | VS Code | Vim |
|-----------|---------|-----|
| Go to line | Ctrl+G | :42 |
| Go to symbol | Ctrl+Shift+O | gd |
| Split | Ctrl+\ | :vsp |
| Switch file | Ctrl+Tab | Ctrl+^ |
| Back | Alt+Left | Ctrl+O |Print this and keep it next to your monitor for the first week. Delete it once the shortcuts are muscle memory.
FAQ
What’s Next
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-20.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro