jamuny.editor

Find and Replace Online

No matches
Ln 1, Col 10 chars, 0 wordsUTF-8

Paste your text, open the find bar, and replace every occurrence at once, or step through them one at a time with next and previous. Switch on regular expressions when a plain search is not enough, restrict a replacement to just the part you have selected, and undo the whole thing with a single keystroke if it went wrong. Nothing is uploaded, so this works on contracts, logs, and anything else you would not paste into a stranger's server.

What "local-first" means

Most online text tools send whatever you paste to a server, run the work there, and send a result back. Your words sit in someone else's logs, backups and databases, and you have to trust a privacy policy.

Local-first means the opposite: the whole tool is downloaded to your browser and runs on your own device. Nothing you type is transmitted anywhere: not to us, not to anyone. There is no server that could receive it, which is a stronger guarantee than a promise not to look.

Three consequences worth knowing:

You do not have to take that on trust. Open your browser's developer tools, watch the network panel, and type: nothing appears in it.The network's verify page walks through the same check on every Jamuny tool.

How to use it

  1. Paste your text. Drop it into the editor. Nothing is uploaded, so contracts and logs are fine here.
  2. Open the find bar. Press Ctrl+F, or Cmd+F on a Mac, or use the Find button in the toolbar.
  3. Choose how to match. Toggle case sensitivity, whole-word matching, or regular expressions depending on how precise you need to be.
  4. Replace one or all. Step through matches individually, or replace every occurrence at once. Either way it is a single undo step.

Worked example

Reformatting names with a capture group

Input
Pattern:  (\w+), (\w+)
Replace:  $2 $1
Text:     Doe, John
          Curie, Marie
Output
John Doe
Marie Curie

Replacing inside a selection only

Select the region first, then switch on "In selection" before replacing. The match count updates to reflect only that region, and everything outside it is left exactly as it was.

This is the safe way to do a replacement that is correct in one part of a document and wrong everywhere else: renaming a variable inside one function, or fixing a column of a pasted table without touching the rest.

Whole word versus plain matching

Plain matching finds your text anywhere it appears, so searching for "cat" also hits "category", "concatenate" and "scatter". Whole-word matching requires a word boundary on both sides, so only the standalone word matches.

This is the single most common cause of a replace-all going wrong. If you are replacing a short word, switch it on before you press the button rather than after.

Undoing a replace-all

A replace-all is recorded as one undo step, so Ctrl+Z (Cmd+Z on a Mac) puts every occurrence back at once rather than making you press it two hundred times.

That is deliberate. A bulk edit you cannot cleanly reverse is a bulk edit you cannot safely try, and being able to try one and look at the result is most of the value of doing it here rather than in the file itself.

When plain matching is not enough

Switching on regular expressions turns the search field into a pattern. That buys you three things a plain search cannot do: matching text you can only describe rather than spell out, anchoring a match to the start or end of a line, and reusing part of what you matched in the replacement.

The reuse is the one people underestimate. Wrap part of the pattern in parentheses and it becomes a capture group, which you can refer to as $1 in the replacement, so swapping "Doe, John" into "John Doe" across a thousand rows is one operation rather than a thousand edits.

Two patterns cover most real use. `^\s+` with an empty replacement strips leading whitespace from every line. `\s+$` does the same for trailing whitespace, which is the usual cause of two apparently identical lines refusing to compare equal.

If a pattern is not behaving, build it in the regex tester first: it highlights every match live and shows what each group captured, which is far easier to reason about than watching a replacement go wrong.

Questions

How do I replace only inside part of my text?

Select the region first, then switch on the "In selection" toggle before replacing. The match count updates to reflect only that region, and everything outside it is left exactly as it was.

How do I reuse part of what I matched in the replacement?

Turn on regular expression mode and wrap the part you want in parentheses, then write $1 for the first group, $2 for the second, or $<name> for a named one. Groups expand for selection-limited replacements too.

What is the difference between whole word and plain matching?

Plain matching finds your text anywhere, so searching for "cat" also hits "category". Whole word requires a word boundary on both sides, so only the standalone word matches.

Can I undo a replace-all that went wrong?

Yes. A replace-all is a single undo step, so Ctrl+Z (Cmd+Z on a Mac) puts every occurrence back at once rather than one at a time.