Search
Search operates on visible lines only — it respects active filters and only scans lines that are currently shown.
Keybindings
| Key | Action |
|---|---|
/ | Search forward |
n | Jump to next match |
N | Jump to previous match |
There’s no default key for a dedicated backward search — ? opens the keybindings help overlay instead. Search backward by pressing /, then N to step backward from the match; search_backward remains available to rebind in config if you want a dedicated key.
Usage
Press / to open the search bar at the bottom of the screen. Type your query and press Enter. logana highlights all matches on visible lines and scrolls to the first match.
nwraps around to the first match after the last line.Nwraps around to the last match before the first line.
While typing, the hint line shows a live match count; the mode bar already shows <Enter> search for as long as the search box is open, so the hint line doesn’t repeat it. Once the search is committed, the hint line shows match <current> / <total> alongside the configured next_match/prev_match keys (n/N by default), styled the same way as a mode bar’s key hints, as a reminder of how to step through the results.
GUI search controls
In the GUI, / opens and focuses the search popup by default. Enter advances
to the next match and closes the popup; Shift+Enter moves to the previous match
and closes it. Esc cancels and clears the search. Closing with the popup’s close
button retains the query and highlights.
These keys are configurable: normal.search_forward opens the popup,
search.confirm confirms forward, gui.search_previous confirms backward, and
search.cancel cancels. normal.next_match / normal.prev_match navigate results
from the log view. See GUI shortcuts.
Pattern Syntax
Search uses full regex syntax. Examples:
/NullPointerException plain text
/user 42 .* failed regex — activity for a specific user
/POST /api/orders.* 5\d\d regex — failed order requests
/^2024-06-15T14 lines from a specific hour
Case Sensitivity
By default, search is case-sensitive. Case sensitivity can be toggled programmatically via the Search API (no UI toggle yet — the default behavior is case-sensitive matching).
Match Highlighting
Matched byte spans are highlighted with the search style (distinct from filter highlight colors). Search highlights take priority over filter highlights — if a search match overlaps a filter-colored span, the search color wins.
The current match (the one n/N is positioned on) is rendered with a distinct highlight color to distinguish it from other occurrences on screen.
When wrap is disabled, navigating to a match with n or N also adjusts the horizontal scroll to center the matched span in the viewport.
Search vs. Filters
| Search | Filter | |
|---|---|---|
| Persisted | No | Yes |
| Affects visible lines | No | Yes |
| Highlighted | Yes | Yes |
| Navigation (n/N) | Yes | No |
| Regex support | Yes | Yes |
Use filters to permanently narrow the view. Use search to navigate through specific patterns within the already-filtered view.
Switching to another interaction mode, such as the filter or group sidebar, clears the current search and its highlights. Escape also cancels any search still running in the background.