Search
The Search field appears above the outline. As you add conditions, matching rows remain visible and the match is highlighted.
The mode menu separates three kinds of text work:
| Mode | Searches |
|---|---|
| Search | Filters rows in the outline with text, tags, dates, and search conditions. |
| Find in Document | Text in the outline, without filtering rows. |
| Replace in Document | Text in the outline, without filtering rows, with replacement actions. |
This page explains Search in detail. Choose Find in Document or Replace in Document from the mode menu to search or replace text without filtering rows. For Find in Preview, see Preview.
Build a search
Start with text, then add conditions when you need to narrow the result. Text searches topics and notes by default.
| Expression | Meaning |
|---|---|
project | Rows containing project |
"release notes" | The exact phrase release notes |
project AND urgent | Rows matching both terms |
project OR roadmap | Rows matching either term |
project NOT archived | Rows matching project but not archived |
-archived | Excludes rows containing archived |
project roadmap | Same as project AND roadmap; spaces mean AND |
project AND (today OR urgent) | Groups alternatives with parentheses |
AND, OR, and NOT are case-insensitive. Conditions can be combined with text in the same expression.
See Search Reference for a complete list of search conditions.
Text in images
Search also finds text inside attached images. Matching words are highlighted on the image.
Filter menu
Choose the filter button at the right side of the Search field to add common conditions without typing them. Each category shows the syntax it inserts, so the menu also works as a quick introduction to the search syntax.
| Category | Choices | Inserts |
|---|---|---|
| State | Incomplete, Completed, Bookmarked | is:incomplete, is:complete, is:bookmarked |
| Contains | Link, Any tag, Note, Any attachment, Image, Sketch, File | has:link, has:tag, has:note, has:attachment, has:image, has:sketch, has:file |
| Row dates | Today, Last 7 days, Last 30 days for Modified or Created | modified:today, modified:7d, created:30d, and so on |
| Date tags | Overdue, Today, Tomorrow, This Week, Next Week, This Month, Any date tag, Sort by date | date:<today, date:today, has:date, sort:date, and so on |
Conditions already in the search are shown with a checkmark. Choose a checked item again to remove that condition. Clear all filters removes the conditions and keeps the words you typed.
The menu covers conditions that narrow rows. Type in:note, level:, tag:, backlinks:, and negated conditions directly; suggestions help you complete them.
To hide the filter button, turn off Settings > Appearance > Controls > Show Filter Menu in Search Field.
Syntax help
On Mac, hold the pointer over a part of the query, such as created or today in created:today, to see what it means. When a query cannot be read, Invalid syntax appears after it. Hover over or select it to see the reason. While you are still typing a condition that can become valid, Kosshi keeps showing suggestions instead of the error.
Working in the results
Search results start at the top of the outline. You can edit rows while searching. If an edit makes a row stop matching, for example completing a task under is:incomplete, removing a bookmark under is:bookmarked, or editing a note, the row stays visible until you change the search. This also applies to Undo and Redo. When Hide Completed Rows is on, completed rows are still hidden.
Completion and search history
Search offers suggestions for existing tags, tag values, dates, backlink targets, and recent searches. The completion behaves in two ways:
- Inline completion appears as a gray continuation in the field. Press Tab to accept it.
- When several candidates are available, a completion menu appears below the field. Move with ↑ and ↓, then press Enter to accept the selected candidate. You can also select a candidate with the pointer.
Type #, @, date:, or backlinks: to open the relevant candidates. The selected condition stays visible in the search field, so you can continue building the expression.
Recent searches also appear as candidates, so you can reuse a previous query without rebuilding it.
