Search
Last reviewed: 2026-09-30
Plainva offers three ways to search: full-text search across the whole vault, the quick switcher for opening files, and find & replace inside a note.
Full-text search across the vault
The field at the top of the sidebar searches titles and contents across the vault. A local full-text index (SQLite FTS5) is built when the vault opens and updated as files change. Search works offline.
Search reacts while you type: word prefixes already match (“Projec” finds “Project plan”) — no Enter needed. The X at the right of the field clears the current search (or press Esc); the sidebar then shows the normal file tree again.
In Chinese, Japanese, Thai and other scripts written without spaces between words, search finds a term anywhere in the text: 議事録 finds “今日は会議の議事録を書いた”, 搜索 finds “全文搜索”. Latin words inside such text are found too (“Plainva” in ”…でPlainvaを使った”).
Search lists individual occurrences with a text excerpt, heading path and line number. Opening a row selects that exact occurrence; several matches in the same note appear separately. The displayed count includes only results already loaded. You can load more occurrences. Arrow keys move between occurrences and Enter opens the selection. Loading, empty results and errors are shown explicitly; new input discards obsolete answers. If an edited occurrence can no longer be identified uniquely, a message explains this. The same occurrences are available in the quick switcher and mobile search. Returning to search on the phone restores the query, loaded results and list position. Hits come by Relevance unless you pick Last modified, Title or Path with the sort button next to the search field (on the phone: in the bar of the search screen); loading more keeps the chosen order. On the phone the sort sheet stays open until you tap Done: tapping the chosen order again reverses its direction.
The search field also applies to the other sidebar views: in Tags it filters the tag list, in Bookmarks the bookmarks.
Search operators
"exact phrase"— quotes match the word sequence exactly. This doubles as a whole-word search for a single word:"plan"finds “plan” but not “planning”. In scripts written without spaces, quotes change nothing — such text has no word boundaries.-term— excludes notes containing the term (works with phrases too:-"old version").path:folder— only files whose path contains the text (e.g.path:Projects; with spaces:path:"My Folder").tag:name— only notes carrying that tag, including nested tags:tag:projectalso finds#project/internal.tag:#projectworks as well.- Operators can be negated (
-path:Archive,-tag:done) and combined freely with search terms:plan tag:project -draft. - Multiple terms are combined with AND. Special characters like
- ( ) : *inside terms are harmless — Plainva treats the input literally.
Quick switcher
Ctrl+O or Ctrl+K opens the quick switcher: type, navigate with the arrow keys, open with Enter. Without input it shows the Recent Files list — the fastest way to jump between your current notes. Matches can also be opened directly in a new tab (the dialog’s footer shows the keys).
Matching is fuzzy: prjplan also finds “Project Plan” — the letters only have to appear in order, and word starts count extra. And when the note does not exist yet, the list shows Create ’…’: Enter creates it right away (in the vault root) and opens it — type a name, press Enter, start writing.
Below the name hits the switcher also shows a Content group: notes whose text matches your input, with a highlighted excerpt of the match. Opening such a hit jumps straight to the match inside the note — just like the sidebar search.
Find & replace inside a note
Ctrl+F opens the editor’s search bar (in Live Preview and source mode):
- Find with
Enter/next and previous through the matches; all highlights every occurrence. - Options: match case, by word, regexp.
- Replace: replace single matches (replace) or replace all.
Across the whole vault
Ctrl/Cmd+Shift+F (or Find & replace in vault in the command palette) searches every note at once. Enter a term, press Find, and the matches appear grouped by note with a line of context each. Type a replacement, untick any note you want to leave out, and Replace in N notes rewrites the rest — each note is written back safely (atomic write + a version snapshot), so a stale preview can never overwrite newer content. Match case, whole word and regex work here too; in regex mode $1/$2 backreferences are available in the replacement.
Every match shows two lines: before with the hit and after with the result — with a regex, $1 back-references are resolved, so the change can be checked before anything is written. An invalid expression is named right at the field instead of answering with an empty list; when nothing matches, the empty state says what to check. While replacing you see the progress and can Cancel — notes already written stay written and are named. On the phone every match shows the same two lines.
On the phone the same thing runs under the magnifier in the header, then > and Find & replace in vault: matches are grouped per note and collapsed, so a term with forty hits does not bury the action; tap a note to look inside, untick the ones you want left alone, and the button names its own scope (Replace in 2 notes). Leaving the app stops a running replace at the next note — notes already written stay written and are named.
Tags
The sidebar view Tags lists all #tags in the vault with a hit count; a click shows the Files with #tag. Tags work in the text (#project) and in the frontmatter (tags: [project]). The sidebar’s search field filters the tag list as well.
In a note a tag is drawn as a small pill — while you write and while you read; the text itself stays #project/website. A click on the pill (on the phone: a tap while reading) opens the notes that carry the tag. What counts as a tag is the same everywhere — in the tag list, in a task and when renaming: a # at the start of a line or after a space, followed by letters, digits, _, - or /. Digits alone are not a tag (#42 stays a number), and neither is anything inside code or a link. Colour tags under Settings → App → Appearance gives every tag a colour that follows from its name; nested tags share the colour of their top-level tag. The setting belongs to this device and stores nothing in your notes.
Rename a tag right across the vault: right-click a tag in the Tags view and enter a new name. Plainva rewrites the tag everywhere — in note bodies (#tag and its #tag/child subtags) and in the frontmatter (tags:) — writing each affected note back through the same safe path. Unrelated tags that merely contain the name (for example #area/tag) are left alone.
Navigating within a note
The Outline in the right sidebar lists all headings of the active note — a click jumps to the spot. For jumping between notes, Backlinks (who links here) and the editor’s Back/Forward buttons help as well.
See also
- Keyboard Shortcuts
- Databases (.base) — structured queries over properties instead of full text