A character-class stripper, not a string-prefix matcher
Important: this is NOT a literal-string prefix remover. The Chars to trim field is interpreted as a *character class*. The regex `/^[chars]+/` is applied to each line, stripping any run of characters from the set at the start. So Chars `1. ` strips `1`, `.`, and space - not the literal string "1. ".
Default Chars `0123456789.) -` covers the usual numbered-list leaders: `1. `, `12. `, `1) `, `1- `, `1 `. It also happens to strip dashes and spaces, so simple bullet-dashes (`- Task`) work too. Lines that start with letters pass through unchanged.
For literal-string prefix removal (e.g. strip the exact prefix `Task: ` from every line), use Replace with Find `^Task: ` and Regex mode on. For whitespace-only trimming, use trim.
How to use remove list item prefixes
- 1Paste your list into the input panel
- 2Default strips the character class `0-9 . ) - space` from line starts
- 3Edit Chars to trim for custom leaders (e.g. `#` or `▸`)
- 4Switch Side to End only or Both if your prefixes trail
- 5For literal string removal, use Replace with Regex mode
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Same op as trim, pre-seeded for numbered/bulleted prefixes.
Handles `1.`, `1)`, `1-`, double-digits
`1. Task`, `12. Task`, `1) Task`, `1- Task` all lose their leader. The greedy `+` in the regex handles any run length, so `100. Task` works too.
Character class, not string match
Chars `1. ` is treated as `[1. ]+`. A line starting with `2.` has `2` not in the set, so the match stops immediately and the line is unchanged. Only the first line of a `1. / 2. / 3.` list would strip its prefix under that narrow Chars setting.
Leaves alphabetic content alone
Default Chars is digits + punctuation + space. `Task one` has no digit or punctuation at its start, so no stripping happens. This is the intended behaviour - you want the prefix gone, the content preserved.
Side option for trailing prefixes
Odd but possible: change Side to End to strip trailing prefixes, or Both for both ends. Most lists have prefixes at Start only.
For literal strings, use Replace
Replace with Regex mode + Find `^Task: ` matches the literal `Task: ` prefix exactly. That is the right tool when the prefix is not character-class-shaped.
Worked example
Default Chars handles `1. `, `2. `, `3. ` - numbers, dots, and the separator space are all in the class.
1. Task one 2. Task two 3. Task three
Task one Task two Task three
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Chars: `0123456789.) -` (default), Side: Start | Strips digits, `.`, `)`, `-`, space from line start | `1. Task one` → `Task one`; same for `2. `, `3. ` |
| Chars: `1. ` | Treated as `[1. ]+` - matches only lines starting with those chars | Line 1 → `Task one`; lines 2 and 3 unchanged (start with `2` and `3`) |
| Chars: `#* ` | For Markdown-style headers / bullets | `## Section` → `Section`; `* Item` → `Item` |
| Chars blank | Fallback to whitespace-only trim | Leading spaces gone; prefixes stay |
| Side: End | Strips from line end instead | Unusual for prefixes - use for trailing numbers like `item 1` |