Plugin: Search and Replace

This plugin adds a simple "Search & Replace" function to the Markdown editor.


A lot of users (myself included) have been looking for a way to search and replace text within Joplin, instead of relying on an external editor (such as VSCode). See this forum post.

I hope, this will be useful for some of you. I'd love to hear feedback, questions, and bug reports.

Cheers! <3


Thank you for creating this.

I have installed it into my Joplin on Windows but I can't figure out where it is. Old eyes, maybe.

On edit: I see it now - I have to switch to the markdown editor first. I usually use the wysiwyg editor.

Ok so... I just found out that the WYSIWYG editor actually has a built-in "Find and Replace" (Ctrl+F):
At least in Joplin Pre-release.


Cool. But at least yours has regular expressions, and that can really be useful at times.

1 Like

@FelisDiligens, many folk never use the WYSIWYG editor, and your plugin for the Markdown Editor will still be important to them :slight_smile:


Thanks! This is a great, and long overdue, addition to Joplin. I appreciate you taking it on.

Thank you for this! The Markdown editor really needed this function.

I do have couple of suggestions based on how the search and replace works in other text editors:

  • A "Find Next" button to highlight the next match (so that the user can review it and decide to replace it or skip it).
  • The ability to start replacing from the beginning of the note after reaching the end.
1 Like

@sneira Thanks for the feedback!

@all So I decided to rewrite the plugin and use a panel instead of a dialog. I took some inspiration from the "Find and Replace" in Visual Studio Code and Notepad++. This is the result:

As always, questions and feedback are welcome. :slight_smile:

~ Cheers


I keep the markdown editor and render pane open side by side.

When this opens in a panel it squishes things horribly.

I'm not sure how many people do the same, but I want to cast my vote for you going back to a dialogue.

1 Like

Hi @fedwards01,
noted. I might think about adding an option to pick between a panel and a dialog. :slight_smile:

Have you tried resizing the panel and pressing F10 and/or F11? This should give you more space when writing.

Oh, there's always ways around things, but then it's not MY preference, right? :wink:

it is simply a request/vote and to make you aware there may be people like me out there. Ultimately it's your time and effort... so your preferences and how much you can accommodate others with what time you have at hand will have to win. :slight_smile:

Thanks for the quick response though!! :+1:t3:

Hi again,

you can now pick between panel and dialog in the settings:

The dialog looks like this now:

The functionality is identical to the panel.

~ Cheers :wink:


Perfect! The cats meow! :pinched_fingers:t3:

Thanks for this plug-in!
I wanted to remove all trailing spaces using regex:

This does not find any result, while there surely were trailing spaces.
Am I missing something?

@jovandeginste The $ matches the end of the note, instead of the end of the line, since the plugin doesn't use the multi line flag.

See regex101:


global flag only (/ +$/g)


global and multi line flag (/ +$/gm)

I'll add a checkbox to enable the multi line flag.

Makes sense, thanks!

Added the checkbox, the update should be available within 15 mins. :+1:

1 Like

Updated, tested and approved; works like a charm now, thanks!!

Nice plugin, thank you.
Question: do you plan to add searching in several notes/a whole notebook?

@FelisDiligens thanks for the plug-in, it's working very nice!

I second the previous request/question, I have converted notebooks (based of a CherryTree DB), using a python script (GitHub - d4vydm/CherryTree2Joplin) but there are quite some HTML-to-MD translation errors, and I would like to clean-up certain tags across notes, eg. on a (sub) notebook level downwards. That would ease a lot of the manual clean-up.