Search

Gilune has two ways of finding things: one for when you know the note's name, and one for when you know something that is written inside it.

Two boxes, two jobs

To open a note you can name, press Ctrl + P. This is the box in the top bar. Type any part of the name, and Enter opens the best match — or click one of the suggestions underneath. It looks at names only, which is what makes it quick.

To search what your notes say, press Ctrl + Shift + F. This opens the Search panel in the sidebar, and it is where the query language below applies. If the sidebar is collapsed, the shortcut reopens it for you. (Ctrl + F finds words in the note you are writing — see Find and replace. If you switch the Find and replace plugin off, Ctrl + F searches the vault again.)

The search panel in the sidebar, showing results grouped by note with the matching lines quoted underneath.
Results are grouped by note, with the matching lines quoted underneath.

Each note that matches shows up to five of its matching lines. If there are more than five, the rest are counted rather than listed. Notes found only by their name or by their properties are real results with no line to quote. Notes whose name matched come first, then notes with the most matches, and clicking any result opens that note — click one of its quoted lines and the cursor lands on that line.

The query language

The rules are short. Every term has to match — putting two words in the box means "both of these", not "either of these". Everything is case-insensitive, with one small exception: a term of only one or two letters matches accented capitals exactly as typed. Three letters and up never mind.

The basics

You typeWhat it means
harbour Notes whose text or name contains harbour.
harbour ferry Notes containing both words, anywhere, in any order.
"harbour ferry" The two words next to each other, as a phrase.
harbour -ferry harbour, but not in notes that also mention ferry. A leading - excludes, and it works on any term below too.

Narrowing by name, path or body

KeywordWhat it doesExample
file: The note's name contains this. file:meeting
path: The note's folder path contains this. path:Projects/
content: The note's body text contains this — useful when you want to match the words but not the name. content:invoice

Properties

Properties are the key: value pairs at the top of a note. Plain words do not look at them; square brackets do.

You typeWhat it means
[tags:home] Notes with a tags property whose value contains home — so this also finds a note tagged home, chores.
[project] Notes that carry a project property at all, whatever it says.
-[project] Notes with no project property.

Searching tasks

By default a result is a whole note. type:task changes what a result is: each result becomes a single task line. That also brings three more keywords into play — due:, done: and is: — which only mean anything alongside type:task.

The task type comes from the tasks plugin. Switch that plugin off and type:task finds nothing, and due: goes back to being an ordinary word to search for. Nothing in your notes changes either way.

You typeWhat it means
type:note Each result is a note. This is what you get without saying anything.
type:task Each result is a task line. On its own, it lists every task in the vault.
type:task invoice Tasks whose line contains invoice.

Due and done dates

due: and done: take exactly the same values. due: is the date you set on a task. done: is when it was finished: the done: date on the line if it has one, and otherwise the day Gilune saw the box get ticked — so a task ticked in another app still has a finish date. Nothing is written into your note to work that out.

Every value is worked out each time the search runs, so a saved query never goes stale. Under the search box, a quiet line says which days your query took — done 26 Oct – 1 Nov 2026 — and a value Gilune cannot read is named in red, with a suggestion when it looks like a typo.

A day

ValueWhat it matchesExample
2026-09-04 That exact day. type:task due:2026-09-04
today, yesterday, tomorrow The day you would expect. type:task done:yesterday
-7d, +3d, -2w, -1m, -1y Counted from today in days, weeks, months or years. type:task due:+3d
lastmonday … lastsunday The most recent one, today included. type:task done:since:lastsunday
monday … sunday The next one, never today — as in the / menu. type:task due:friday

A period

ValueWhat it matchesExample
thisweek, thisworkweek The whole calendar week, or its Monday to Friday. Weeks start on Monday unless you change it in the Tasks plugin's settings. type:task done:thisweek
thismonth, thisquarter, thisyear The whole month, quarter or year. type:task done:thismonth
lastweek, lastmonth, lastquarter, lastyear The one before. type:task done:lastweek
2026-09, 2026-Q3, 2026 That month, quarter or year. type:task done:2026-Q3
thismonth-1m, thisweek+1w An offset after a period moves the whole period: last month, next week. type:task due:thisweek+1w

A minus or plus sign always means counting: no name contains one, so thismonth-1m can only mean "this month, one month back".

Comparing and ranges

ValueWhat it matchesExample
since:…, until:… From the start of that day or period onwards, or up to its end — both including it. type:task done:since:-7d
after:…, before:… After it or before it, not including it. before:thisweek is everything up to last Sunday. type:task due:before:today
…..… From the start of the first to the end of the second. type:task done:2026-07..2026-09
overdue Strictly before today. Something due today is not overdue. type:task due:overdue
week Today and the six days after it — the next seven days, not the calendar week. type:task due:week
none No date at all. So -due:none is how you say "has a due date". type:task due:none

A space always starts a new term, so due:after:next week is not a query; due:after:thisweek is.

When a box was ticked before Gilune first saw the note — a list you brought in from elsewhere, already ticked — nobody knows when it was finished, so it has no finish date: type:task is:done done:none lists those. A box ticked in another app is dated when Gilune next looked at the note, which may be later than the moment you ticked it if Gilune was closed.

Ticked or not

You typeWhat it matches
is:open Tasks that are not ticked — - [ ].
is:done Tasks that are ticked — - [x].
-is:done The same as is:open, since a task is one or the other.

Some queries worth stealing

QueryAnswers
type:task is:open due:overdue What have I let slip?
type:task is:open due:week What is coming up this week?
type:task is:open -due:none path:Work/ Open work tasks that have a date on them.
type:task done:thisweek What did I actually finish this week?
type:task done:since:-7d What did I finish in the last seven days?
type:task is:open due:none [project] Undated tasks in notes belonging to a project.

Find and replace

Search tells you which notes are about something. Find and replace is for exact words: where they are in a note, and changing them.

In the note you are writing, press Ctrl + F. A bar opens above the note. Type, and every match is shaded, with the one you are on shaded more strongly and the count beside the box (2 of 5). Enter or F3 goes to the next match and Shift + Enter or Shift + F3 to the one before; both carry on round from the end to the start. Esc closes the bar and leaves the cursor on the match. If you had a few words selected, they are already in the box.

Press Ctrl + H (or the arrow at the left of the bar) for a second box to replace with. Replace changes the match you are on and moves to the next; All changes every one at once, and one Ctrl + Z in the note puts them all back.

Three switches sit beside the box: Aa matches capitals exactly, W matches whole words only (so cat does not find catalogue), and .* treats what you type as a regular expression — ^ and $ mean the start and end of a line, and in the replacement $1 puts back what the first bracketed part matched. Without .*, everything you type is taken literally, a $ included. Find and replace looks at the words of the note, never its name or its properties.

Across many notes, press Ctrl + Shift + H, or the replace button beside the Search box. The search box now says which notes to change — leave it empty for all of them, or type any search, such as path:Work — and two boxes below it say what to find and what to put instead. Every note with a match is listed with its matching lines, and each has a tick box, so you can leave a note out. Replace in changes the ticked notes; Undo beside the result puts them back.

A note with changes you have not saved yet is left out and says so — save it and it joins the list. A note that changes after the list was drawn (in another app, say) is not touched either; the result tells you which notes were skipped and why. Every replace across notes is also kept under Rename references… in a note's ⋯ menu, among the previous operations, where it can be looked at or undone later.

Find and replace is a plugin, on by default. Switch it off in Settings ▸ Plugins and the bar, the replace rows and its keys go away. Every one of its keys can be changed on its own page there: press Change beside a key, then the keys you want.

When a query does not do what you expected

Using a query inside a note

The same language works in a filter block, which turns a query into a live list embedded in one of your notes. That is covered on the tasks page →