English | 简体中文
String Master
Ultimate string manipulation toolkit — 188+ commands in your right-click menu
Case · Lines · Numbers · Unicode · JSON · XML · Web · SQL · Encrypt · Encode · Convert
Quick Start
- Select text in the editor
- Right-click → "String Master" submenu, pick a command
- Or press
Ctrl+Shift+M to open the live preview panel — see results before applying
Features (188+ Commands)
All commands are organized into 15 groups in the right-click context menu.
1. Line Operations (24 commands)
| Command |
Description |
| Delete Blank Lines |
Remove empty/whitespace-only lines |
| Delete Duplicate Lines |
Deduplicate lines (preserves first occurrence) |
| Keep Only Duplicate Lines |
Remove lines that appear only once |
| Collapse Consecutive Empty Lines |
Merge multiple blank lines into one |
| Trim Leading and Trailing Whitespace |
Remove whitespace from both ends of each line |
| Trim Leading Whitespace |
Remove leading whitespace from each line |
| Trim Trailing Whitespace |
Remove trailing whitespace from each line |
| Sort Lines Ascending |
Lexicographic sort A→Z |
| Sort Lines Descending |
Lexicographic sort Z→A |
| Sort Lines Randomly |
Shuffle line order |
| Sort Lines Natural (A→Z) |
Natural sort ascending (e.g. item2, item10) |
| Sort Lines Natural (Z→A) |
Natural sort descending |
| Sort by Line Length (Short→Long) |
Sort by character count ascending |
| Sort by Line Length (Long→Short) |
Sort by character count descending |
| Sort Lines Hierarchical |
Sort preserving indentation hierarchy |
| Grep (Keep Matching Lines) |
Filter lines matching a regex pattern |
| Inverted Grep (Remove Matching Lines) |
Remove lines matching a regex pattern |
| Group and Count Lines |
Count occurrences of each unique line |
| Join Lines with Custom Separator |
Merge lines with any separator (prompted) |
| Join Lines with Single Quotes + Commas |
'val1','val2','val3' — great for SQL IN clauses |
| Join Lines with Double Quotes + Commas |
"val1","val2","val3" |
| Add Same Character at Both Ends |
Wrap each line with a custom character |
| Split by Delimiter |
Split each line into multiple lines by a delimiter |
| Remove Leading Line Numbers |
Strip leading numbers from each line |
2. Naming & Case (14 commands)
| Command |
Example Input → Output |
| Switch Case (Smart Cycle) |
Cycle through camelCase → snake_case → kebab-case → PascalCase |
| camelCase |
hello_world → helloWorld |
| PascalCase |
hello_world → HelloWorld |
| snake_case |
helloWorld → hello_world |
| SCREAMING_SNAKE |
helloWorld → HELLO_WORLD |
| kebab-case |
helloWorld → hello-world |
| Capitalize First Letter |
hello → Hello |
| Decapitalize |
Hello → hello |
| Titleize (Each Word) |
hello world → Hello World |
| Titleize (AP Style) |
Follows AP style guide |
| Titleize (Chicago Style) |
Follows Chicago style guide |
| Sentence case |
hello world → Hello world |
| Swap Case |
Hello → hELLO |
| Random Case |
hello → hElLo |
3. Number Operations (4 commands)
| Command |
Description |
| Increment All Numbers |
All integers +1 (preserves leading zeros) |
| Decrement All Numbers |
All integers -1 (preserves leading zeros) |
| Duplicate and Increment |
Copy selection and increment numbers in the copy |
| Sequence Numbers from First |
Replace numbers with sequential values starting from the first |
Example — Increment:
Input: file_01.txt, file_02.txt, file_03.txt
Output: file_02.txt, file_03.txt, file_04.txt
Example — Duplicate + Increment:
Input: const item1 = "...";
Output: const item1 = "...";
const item2 = "...";
4. Escape / Unescape (6 commands)
| Command |
Description |
| Escape Java String |
\t \n \" \\ etc. |
| Unescape Java String |
Revert Java escape sequences |
| Escape JSON String |
Escape for JSON strings |
| Unescape JSON String |
Revert JSON escape sequences |
| String Escape |
Generic escape for \n \t \" \' \\ |
| String Unescape |
Generic unescape |
5. Encode / Decode (14 commands)
| Command |
Description |
| Encode to Base64 |
Text → Base64 |
| Decode Base64 |
Base64 → Text |
| Encode to Hex |
Text → Hex bytes |
| Decode Hex |
Hex → Text |
| URL Encode |
Encode special URL characters |
| URL Decode |
Decode URL-encoded text |
| URL Encode (RFC 3986) |
encodeURIComponent — spaces as %20 |
| URL Decode (RFC 3986) |
decodeURIComponent |
| ISO Timestamp → Epoch Milliseconds |
2024-01-01 → 1704067200000 |
| Epoch Milliseconds → ISO Timestamp |
1704067200000 → 2024-01-01T00:00:00.000Z |
| Date → Unix Timestamp (s) |
2024-01-01 → 1704067200 |
| Timestamp → Date |
Auto-detect seconds/millis → 2024-01-01 08:00:00 |
| Unix Timestamp (s) → Date |
1704067200 → 2024-01-01 08:00:00 |
| Millis Timestamp → Date |
1704067200000 → 2024-01-01 08:00:00 |
| Command |
Description |
| Insert SQL → Markdown Table |
Convert INSERT INTO ... VALUES (...) to a Markdown table |
| Calculate Sum of Multiple Lines |
Evaluate selected lines as math expressions |
| Sum All Numbers in Text |
Extract and sum all numbers in the text |
| Convert UTF8 to Char |
中文 → 中文 |
| Convert Char to UTF8 |
中文 → 中文 |
| Chop (Split into Groups) |
Split text into groups of N characters (prompts for N) |
| Truncate |
Trim to N chars (no ellipsis) |
| Prune |
Trim to N chars, append ... |
| Repeat |
Repeat selection N times |
| Format JSON (Pretty Print) |
Pretty-print JSON with indentation |
| Minify JSON (Compact) |
Compress JSON to single line |
| Remove All Whitespace |
Strip all whitespace characters |
| Rows to Columns (Transpose) |
Convert rows to columns (matrix transpose) |
| Columns to Rows (Reverse Transpose) |
Convert columns back to rows |
| Swap Quotes |
'hello' → "hello" and vice versa |
| Clean (Collapse Spaces) |
hello world → hello world |
| Clean Diacritics |
café → cafe |
| Reverse |
hello → olleh |
| Slugify |
Hello World! → hello-world |
| Command |
Description |
| Format XML (Pretty Print) |
Pretty-print XML with indentation |
| Minify XML (Compact) |
Compress XML to single line |
| Sort XML Elements (Ascending) |
Sort XML child elements A→Z |
| Sort XML Elements (Descending) |
Sort XML child elements Z→A |
| Escape XML Entities |
< > & " ' → XML entities |
| Unescape XML Entities |
XML entities → characters |
| XML Validate |
Check XML syntax, show errors with line context |
| XML Tags to Lowercase |
Convert all XML tag names to lowercase |
8. Base Conversion (18 commands)
| Command |
Description |
| Decimal → Binary |
10 → 1010 |
| Decimal → Octal |
10 → 12 |
| Decimal → Hex |
255 → ff |
| Binary → Decimal |
1010 → 10 |
| Octal → Decimal |
12 → 10 |
| Hex → Decimal |
ff → 255 |
| Binary → Octal |
1010 → 12 |
| Octal → Binary |
12 → 1010 |
| Binary → Hex |
1111 → f |
| Hex → Binary |
f → 1111 |
| Octal → Hex |
17 → f |
| Hex → Octal |
f → 17 |
| String → Octal Codes |
ab → 141 142 |
| Octal Codes → String |
141 142 → ab |
| String → Decimal Codes |
ab → 97 98 |
| Decimal Codes → String |
97 98 → ab |
| String → Hex Codes |
ab → 61 62 |
| Hex Codes → String |
61 62 → ab |
9. Encoding Conversion (22 commands)
| Command |
Description |
| encodeURI |
encodeURI() — preserves :/?#[]@!$&'()*+,;= |
| decodeURI |
decodeURI() |
| encodeURIComponent |
encodeURIComponent() — encodes all special chars |
| decodeURIComponent |
decodeURIComponent() |
| Escape (JS %u) |
escape() — hello world → hello%20world |
| Unescape (JS %u) |
unescape() |
| HEX → RGB |
#ff6600 → rgb(255, 102, 0) |
| RGB → HEX |
rgb(255, 102, 0) → #ff6600 |
| Simplified → Traditional Chinese |
中文 → 中文 (Han conversion) |
| Traditional → Simplified Chinese |
中文 → 中文 |
| lowercase → UPPERCASE |
hello → HELLO |
| UPPERCASE → lowercase |
HELLO → hello |
| Char → ASCII Codes |
ABC → 65 66 67 |
| ASCII Codes → Char |
65 66 67 → ABC |
| RMB → Chinese Uppercase |
123.45 → 壹佰贰拾叁元肆角伍分 |
| Chinese → Pinyin |
中文 → zhongwen |
| Number → Roman Numerals |
42 → XLII |
| Roman Numerals → Number |
XLII → 42 |
| Text → Morse Code |
SOS → ... --- ... |
| Morse Code → Text |
... --- ... → SOS |
| Chinese to Unicode |
中文 → 中文 |
| Unicode to Chinese |
中文 → 中文 |
10. Encrypt / Decrypt (23 commands)
Hash (13 commands):
| Command |
Description |
| MD5 (32-bit, Lowercase) |
hello → 5d41402abc4b2a76b9719d911017c592 |
| MD5 (32-bit, Uppercase) |
hello → 5D41402ABC4B2A76B9719D911017C592 |
| MD5 (16-bit, Lowercase) |
hello → bc4b2a76b9719d91 |
| MD5 (16-bit, Uppercase) |
hello → BC4B2A76B9719D91 |
| SHA1 |
hello → aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d |
| SHA2-256 |
256-bit SHA-2 hash |
| SHA2-512 |
512-bit SHA-2 hash |
| SHA3-224 |
224-bit SHA-3 hash |
| SHA3-256 |
256-bit SHA-3 hash |
| SHA3-384 |
384-bit SHA-3 hash |
| SHA3-512 |
512-bit SHA-3 hash |
| RIPEMD-160 |
160-bit RIPEMD hash |
| CRC32 |
8-character CRC32 checksum |
Cipher (10 commands, prompts for password):
| Command |
Description |
| AES Encrypt / Decrypt |
AES symmetric encryption |
| DES Encrypt / Decrypt |
DES symmetric encryption |
| 3DES Encrypt / Decrypt |
Triple DES encryption |
| Rabbit Encrypt / Decrypt |
Rabbit stream cipher |
| RC4 Encrypt / Decrypt |
RC4 stream cipher |
| Command |
Description |
| General Code Compress |
Remove blank lines and extra whitespace |
| General Code Beautify |
Brace-based indentation for C-style languages |
| HTML Compress |
Remove comments and whitespace between tags |
| HTML Beautify |
Pretty-print HTML with proper indentation |
| JSMin Compress |
Remove comments and whitespace from JavaScript |
| JS Beautify |
Brace-based JavaScript formatting |
| JS Pack Encrypt |
Dean Edwards Packer style obfuscation |
| JS Eval Decrypt |
Unpack Dean Edwards Packer format |
| CSS Compress |
Minify CSS (remove comments, whitespace) |
| CSS Beautify |
Pretty-print CSS with indentation |
| HTML → JS |
Convert HTML to JavaScript string literal |
| JS → HTML |
Convert JavaScript string back to HTML |
| Unicode HTML Encode |
Encode non-ASCII chars as &#xXXXX; entities |
| Extract URL Query Params |
Parse URL and extract query parameters |
| Fetch Remote URL Content |
HTTP GET remote URL, output to new editor |
| Escape JavaScript String |
JS string escape sequences |
| Unescape JavaScript String |
Revert JS escape sequences |
| Escape HTML Entities |
& < > " ' → HTML entities |
| Unescape HTML Entities |
HTML entities → characters |
| Command |
Description |
| JSON to CSV |
Convert JSON array of objects to CSV |
| JSON to YAML |
Convert JSON to YAML format |
| YAML to JSON |
Convert YAML to JSON |
| JSON to Markdown Table |
Convert JSON array to Markdown table |
| JSON Validate |
Validate JSON syntax with error location |
| JSON Swap Quotes |
Toggle between single and double quotes |
| JSON Remove Key Quotes |
Strip quotes from JSON keys |
| Generate Random JSON Sample |
Create a random JSON object |
| JSON Tree View |
Open hierarchical JSON tree view |
| Command |
Description |
| Text to QR Code |
Generate QR code from selected text (opens in Webview) |
| Solar → Lunar Calendar |
Convert Gregorian date to Chinese lunar calendar |
| Lunar → Solar Calendar |
Convert Chinese lunar date to Gregorian calendar |
| Calculate Character Length |
Show character count, byte length, word count, etc. |
| UUID/GUID Generate |
Generate a random UUID v4 |
| Properties → YAML |
Convert Java .properties format to YAML |
| Command |
Description |
| Format SQL |
Format SQL with keyword capitalization and indentation |
| Command |
Shortcut |
Description |
| Repeat Last Action |
Ctrl+Shift+R |
Re-run the last command |
| Show Transformations with Preview |
Ctrl+Shift+M |
Open live preview panel with all commands |
| String Master... |
Ctrl+' |
Open command search quick pick |
How to Use
Select text → right-click → "String Master" submenu with 15 grouped categories:
- Line Operations — delete, sort, filter, join, split
- Naming & Case — camelCase, snake_case, PascalCase, etc.
- Number Operations — increment, decrement, sequence
- Escape / Unescape — Java, JSON, generic string
- Encode / Decode — Base64, Hex, URL, timestamp
- Tools — SQL, calc, UTF8, text tools, JSON format
- XML Tools — format, minify, sort, validate
- Base Conversion — 2/8/10/16 radix interconversion
- Encoding Conversion — URI, color, Chinese, pinyin, Morse, etc.
- Encrypt / Decrypt — MD5, SHA, AES, DES, etc.
- Web Tools — HTML/JS/CSS compress, beautify, convert
- JSON Tools — CSV, YAML, Markdown, validate, sample
- Misc Tools — QR code, calendar, UUID, properties
- SQL Tools — format SQL
- Meta — repeat last action, preview panel
2. Command Palette (Ctrl+Shift+P)
Type "String Master" to see all 188+ commands, or type a specific command name (e.g., "camelCase" or "驼峰").
Supports pinyin search: type "shanchu" to match "删除" (Delete) commands.
3. Live Preview Panel (Ctrl+Shift+M)
Select text → press Ctrl+Shift+M → see real-time previews for every transformation → pick and apply.
4. Keyboard Shortcuts
| Shortcut |
Command |
Ctrl+Shift+M |
Show Transformations with Preview |
Ctrl+' |
String Master Command Search |
Ctrl+Shift+R |
Repeat Last Action |
Ctrl+Shift+1 |
camelCase |
Ctrl+Shift+2 |
snake_case |
Ctrl+Shift+3 |
kebab-case |
Ctrl+Shift+4 |
PascalCase |
Ctrl+Shift+5 |
SCREAMING_SNAKE |
Ctrl+Shift+6 |
Smart Case Switch |
Configuration
Open VS Code Settings (Ctrl+,) → search "String Master":
| Setting |
Type |
Default |
Description |
stringMaster.savedRegexes |
object[] |
[] |
Saved regex patterns for one-click grep |
stringMaster.enableSidebar |
boolean |
true |
Enable the sidebar panel |
stringMaster.sidebarPreview |
boolean |
false |
Show live preview next to each command button in the sidebar |
stringMaster.enableStatusTip |
boolean |
true |
Show status bar tips instead of popup notifications |
stringMaster.menuOrder |
string[] |
[] |
Custom order of command IDs in menus and sidebar |
stringMaster.hiddenCommands |
string[] |
[] |
Command IDs to hide from menus and sidebar |
Release Notes
Please check CHANGELOG
License
MIT License. See LICENSE for details.
| |