This project is not covered by Drupal’s security advisory policy.
CKEditor 5 Find and Replace brings the native CKEditor 5 Find and Replace panel into any Drupal 10 or 11 CKEditor 5 toolbar with a single drag-and-drop. Editors can instantly locate and update any word or phrase inside a body field — without leaving the editor, without a page reload, and without any coding or third-party dependencies. Whether you manage a large content team that needs to standardise terminology across dozens of nodes, or you simply want the familiar Ctrl+F shortcut available while writing, this module adds it in under a minute.
Features
Find
- Instant search — Highlights all matching occurrences in the editor as you type.
- Result counter — Displays the current match index and total count directly inside the Find field (e.g. 2 of 7).
- Previous / Next navigation — Step through every match using the arrow buttons or keyboard.
- Visual highlights — All matches are highlighted; the active match is shown in a distinct orange colour for easy scanning.
Replace
- Replace single — Replaces only the currently active (orange) match and automatically advances to the next one.
- Replace all — Replaces every occurrence of the search term in the entire document in a single action.
Search options
-
Match case — Toggle case-sensitive searching; when enabled,
Helloandhelloare treated as different words. -
Whole words only — Restricts matches to complete words; searching for
catwill not matchcategoryorconcatenate.
Registered commands
The FindAndReplace plugin registers the following CKEditor 5 commands and UI components:
-
find -
findNext -
findPrevious -
replace -
replaceAll -
findAndReplacetoolbar button
Editor experience
-
Keyboard shortcut — Open the panel instantly with
Ctrl+F(Windows / Linux) or⌘F(macOS) while the editor has focus. - No output markup — The feature is a pure editor utility; nothing extra is stored in the database or output in rendered HTML.
- Zero dependencies — No CDN assets, no npm runtime packages. The compiled plugin is bundled directly in the module.
Post-Installation
After enabling the module, follow these steps to add the button to your editor:
-
Open your text format configuration.
Go to Configuration → Content authoring → Text formats and editors (/admin/config/content/formats). Click Configure next to the format used on your body fields (e.g. Full HTML). -
Add the toolbar button.
In the CKEditor 5 toolbar section, drag the Find and replace button from the Available items tray into an active toolbar row. -
Save and rebuild caches.
Click Save configuration, then rundrush cr. -
Use it.
Open or create any content node that uses the configured text format. Click the Find and replace toolbar button or pressCtrl+F/⌘Fto open the panel. Type a search term, navigate matches with the arrow buttons, and use Replace or Replace all to update text.
Additional Requirements
- Drupal 10.x or 11.x
- PHP 8.1 or higher
- CKEditor 5 module (included in Drupal core ≥ 9.3)
No third-party PHP libraries, JavaScript frameworks, or external CDN assets are required. The module is entirely self-contained.
Recommended Modules
- CKEditor 5 Premium Features — If your team needs tracked changes, comments, revision history, or real-time collaborative editing alongside Find and Replace, this module integrates CKEditor 5's premium collaboration plugins with Drupal.
- Editor Advanced Link — Pairs well when editors use Find and Replace to locate content before adding or updating links — extends the CKEditor 5 link dialog with target, title, and CSS class fields.
-
CKEditor 5 Fullscreen — Expands the editor to fill the browser window, giving Find and Replace more room to work when editing long-form content.
Similar Projects
- CKEditor Find — The CKEditor 4 equivalent of this module. If you are still on CKEditor 4 (Drupal 9 or earlier), use that module instead. CKEditor 5 Find and Replace is the CKEditor 5-native replacement built for Drupal 10 and 11.
- Drupal's built-in spell checker — The browser's native spell-check underlines misspellings inline, but cannot locate or batch-replace strings across a document. Find and Replace fills that gap for content-level search and bulk updates.
Use Cases
CKEditor 5 Find and Replace is especially useful for:
- Content standardisation — Quickly rename a product, brand, or term across a long article without manually scanning every paragraph.
- Copyediting — Catch repeated words, inconsistent capitalisation, or common typos before publishing.
-
Template editing — Replace placeholder text (e.g.
[CLIENT NAME],[DATE]) in reusable content templates in seconds. - Long-form content — Navigate quickly to a specific phrase in a lengthy policy document, manual, or report.
- Multilingual sites — Locate untranslated strings or stale locale-specific references left over from copying content between language versions.
Demo
- Go to https://simplytest.me/project/ckeditor5_findandreplace.
- Click Launch Sandbox and install Drupal as normal.
- Enable the CKEditor 5 Find and Replace module.
- Go to
admin/config/content/formats/manage/full_html, drag the Find and replace button into the active toolbar, and save. - Open or create a content node, press
Ctrl+F, and use the panel to find and replace text in the editor.
Support
Please post bug reports, feature requests, and support questions to the CKEditor 5 Find and Replace issue queue.
When reporting an issue, please include your Drupal core version, PHP version, browser, the steps to reproduce, and any relevant output from Reports → Recent log messages.
Supporting This Module
If this module saves you time, the best ways to support continued development are:
- Report bugs and suggest features in the issue queue.
- Contribute patches, test coverage, or documentation improvements.
- Post a review on the project page — community ratings help others discover the module.
- Help test release candidates against Drupal 10 and 11 minor updates.
Project information
- Project categories: Content editing experience, Developer tools, Site search
- Ecosystem: CKEditor 5
618 sites report using this module
- Created by sujan shrestha on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.


