Appearance
VS Code vs xterm.js
Side-by-side terminal feature comparison
Summary
29 features differ between these terminals
Feature Comparison
Character Sets
| Feature | VS Code | xterm.js |
|---|---|---|
| DEC line drawing character set | ✓ | ✓ |
| DEC Special Graphics | ✓ | ✓ |
| G0/G1 character set switching | ✓ | ✓ |
| UTF-8 mode | ✓ | ✓ |
Cursor
Device Status
Editing
| Feature | VS Code | xterm.js |
|---|---|---|
| Delete characters (DCH) | ✓ | ✓ |
| Delete lines (DL) | ✓ | ✓ |
| Insert characters (ICH) | ✓ | ✓ |
| Insert lines (IL) | ✓ | ✓ |
| Repeat character (REP) | ✓ | ✓ |
Erase
Extensions
Input Protocols
| Feature | VS Code | xterm.js |
|---|---|---|
| Button-Event Mouse (1002) | ✓ | ✓ |
| CSI u Key Encoding | ✓ | ✗ |
| modifyOtherKeys | ✓ | ✗ |
| modifyOtherKeys mode 3 | ? | ? |
| Pixel Mouse Reporting (1016) | ✓ | ✗ |
| urxvt Mouse Reporting (1015) | ✓ | ✗ |
| X10 Mouse Tracking (9) | ✓ | ✓ |
Modes
Reset
| Feature | VS Code | xterm.js |
|---|---|---|
| Backend reset() method | ✓ | ✓ |
| Full reset (RIS) | ✓ | ✓ |
| SGR reset clears attributes | ✓ | ✓ |
| Soft reset (DECSTR) | ✓ | ✓ |
Scrollback
SGR (Text Styling)
Text
Unicode
| Feature | VS Code | xterm.js |
|---|---|---|
| East Asian Ambiguous Width | ✓ | ✓ |
| Grapheme Cluster Cursor Movement | ✗ | ✓ |
| Tab Stops (HT) | ✓ | ✓ |
| Wide Char at Line Wrap | ✓ | ✓ |
Only in VS Code
13 features supported by VS Code but not xterm.js:
- iTerm2 Inline Images (OSC 1337)Extensions
- Kitty keyboard protocolExtensions
- Desktop Notifications (OSC 9/777)Extensions
- VS Code Shell Integration (OSC 633)Extensions
- Current directory (OSC 7)Extensions
- Semantic prompts (OSC 133)Extensions
- CSI u Key EncodingInput Protocols
- modifyOtherKeysInput Protocols
- Pixel Mouse Reporting (1016)Input Protocols
- urxvt Mouse Reporting (1015)Input Protocols
- Left/Right Margins (DECLRMM, Mode 69)Modes
- Emoji wide chars (2 cols)Text
- Regional indicator flags (2 cols)Text
Only in xterm.js
2 features supported by xterm.js but not VS Code: