| Crates.io | bvr |
| lib.rs | bvr |
| version | 0.0.4 |
| created_at | 2023-11-04 01:51:51.108598+00 |
| updated_at | 2024-01-10 04:38:24.133395+00 |
| description | A pager designed to help you chew through logs. |
| homepage | https://github.com/Avarel/bvr |
| repository | https://github.com/Avarel/bvr |
| max_upload_size | |
| id | 1024847 |
| size | 523,566 |

Powerful pager written in rust, purpose-built for chewing through logs.
BVR (pronounced "beaver") is still under heavy development.
I needed a pager that could handle large log files and be fast and responsive. I especially hated grepping a file, piping it to less, exiting and then grepping with a different regex. I wanted to compare log files side by side. I also needed a plethora of other features that I couldn't find in any other pager.
| Feature | Description | Progress |
|---|---|---|
| Command Completion | Use tabs to complete commands. | Planned |
| Filter Presets | Add preset filters upon startup. | After MVP |
| Custom Keybindings | Customize the keybindings of the program. | After MVP |
| Word-Wrapping | Wrap long lines. | After MVP |
| Feature | Description | Progress |
|---|---|---|
| Piping Files | View piped outputs of other programs, ie. cat file | bvr |
Basic |
| Status Bar | View current state of the pager. | Basic |
| Commands | Use modal commands to interact with the pager. | Basic |
| Horizontal Scrolling | Pan the view horizontally. | Basic |
| Export Output | Export data of active filters to a file. | Done |
| Mouse Support | Use mouse to interact with the TUI. | Done |
| Filter (Regex) | Select and disable additive search filters. | Done |
| Filter Intersection | Compose filters by their intersection instead of their union. | Done |
| Filter Match Jumping | Jump to the next or previous line that matches a filter. | Done |
| Multiplexing | View multiple files through tabs or windows. | Done |
| Follow Output | Constantly scroll down as new data is loaded. | Done |
This is the default mode. You can scroll through files.
| Keybinding | Description |
|---|---|
Up and Down |
Pan the view. |
n p |
Pan to next/previous active match. |
Home/g |
Pan the view to end of the file. |
End/G |
Pan the view to the end of the file (follow output). |
PageUp and PageDown/Space |
Pan the view by a page. |
Shift + Up and Down |
Pan the view by a half-page. |
In this mode, you can enter commands to interact with the pager.
| Command | Description |
|---|---|
:quit :q |
Quit. |
:open <file> :o |
Open a file in a new tab/view. |
:close :c |
Close the current tab/view. |
:mux :m |
Toggle the multiplexer mode between windows or tabs. |
:mux tabs :mux split :m t :m s |
Set the multiplexer to the respective mode. |
:pb pbcopy |
Copy the output of the active filters to the clipboard. |
:filter regex <regex> :f r <regex> |
Create a new filter searching for the regex. |
:filter lit <lit> :f l <regex> |
Create a new filter searching for the literal. |
:filter clear :f c |
Clear all filters. |
:filter union :f | |
Use union strategy for filter composites (default). |
:filter intersect :f & |
Use intersection strategy for filter composites. |
:<number> |
Go to the specific line number (or nearest if not available). |
Note: find is an alias for filter.
In this mode, you can select lines to bookmark.
| Keybinding | Description |
|---|---|
Up and Down |
Move the select cursor. |
n p |
Select next/previous active match. |
Shift + Up and Down, n and p |
Expand the select cursor into a selection range. |
Space and Enter |
Toggle bookmark at current line. |
In this mode, you can toggle filters from bookmarks or searches to omit or include certain lines in the viewer.
| Keybinding | Description |
|---|---|
Esc and Tab |
Exit selection mode (enter viewer mode). |
: |
Enter command mode. |
i |
Enter selection mode. |
Up and Down |
Change which filter is selected. |
Space and Enter |
Toggle selected filter. |
| Keybinding | Description |
|---|---|
Esc |
Exit selection mode (enter normal mode). |
Ctr; + C |
Exit the program. |
: |
Enter command mode. |
/ |
Create a new filter. |
? |
Create a new filter (literal). |
v |
Enter visual mode. |
Tab |
Enter filter mode. |
` and ~ |
Switch selected view (forward and backward). |
1 .. 9 |
Switch selected view to the nth buffer. |