Description
ov provides a more convenient function by separating text, not only the pager function to display at the terminal size.
* Specify a fixed line to be displayed as a header.
* Table-formatted text can be interpreted as a column by the delimiter.
* Text can be interpreted as a section by splitting the line with a delimiter.
* Supports files larger than memory.
ov alternatives and similar packages
Based on the "Command Line" category.
Alternatively, view ov alternatives based on common mentions on social networks and blogs.
-
Rich Interactive Widgets for Terminal UIs
Terminal UI library with rich, interactive widgets — written in Golang -
tcell
Tcell is an alternate terminal package, similar in some ways to termbox, but better in others. -
survey
DISCONTINUED. A golang library for building interactive and accessible prompts with full support for windows and posix terminals. -
pterm
✨ #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible. -
cointop
DISCONTINUED. A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀 -
The Platinum Searcher
A code search tool similar to ack and the_silver_searcher(ag). It supports multi platforms and multi encodings. -
asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. -
CLI Color
🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染 -
go-size-analyzer
A tool for analyzing the size of compiled Go binaries, offering cross-platform support, detailed breakdowns, and multiple output formats.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of ov or a related project?
Popular Comparisons
README
ov - feature rich terminal pager
ov is a terminal pager.
- Can be used instead of
less
ormore
. It can also be used instead oftail -f
. ov
also has an effective function for tabular text.
<!-- vscode-markdown-toc -->
- 1. Feature
- 2. Install
- 2.1. deb package
- 2.2. rpm package
- 2.3. MacPorts (macOS)
- 2.4. Homebrew(macOS or Linux)
- 2.5. pkg (FreeBSD)
- 2.6. Binary
- 2.7. go install
- 2.8. go get(details or developer version)
- 3. Usage
- 3.1. Basic usage
- 3.2. Config
- 3.3. Header
- 3.4. Column Mode
- 3.5. Wrap/NoWrap
- 3.6. Alternate-Rows
- 3.7. Section
- 3.8. Follow mode
- 3.9. Follow all mode
- 3.10. Follow section mode
- 3.11. Exec mode
- 3.12. Search
- 3.13. Mark
- 3.14. Watch
- 3.15. Mouse support
- 4. Command option
- 5. Key bindings
- 6. Customize
- 6.1. Style customization
- 6.2. Key binding customization
<!-- vscode-markdown-toc-config numbering=true autoSave=true /vscode-markdown-toc-config --> <!-- /vscode-markdown-toc -->
1. Feature
- Supports fixed header line display (both wrap/nowrap).
- Supports column mode, which recognizes columns by delimiter.
- Supports section-by-section movement, splitting sections by delimiter.
- Dynamic wrap/nowrap switchable.
- Supports alternating row styling.
- Shortcut keys are customizable.
- The style of the effect is customizable.
- Supports follow-mode (like tail -f).
- Supports follow-section, which is displayed when the section is updated.
- Supports following multiple files and switching when updated(follow-all).
- Supports the execution of commands that toggle both stdout and stder for display.
- Supports watch mode, which reads files on a regular basis.
- Supports incremental search and regular expression search.
- Better support for Unicode and East Asian Width.
- Support for compressed files (gzip, bzip2, zstd, lz4, xz).
- Suitable for tabular text. psql, mysql, etc...
2. Install
2.1. deb package
You can download the package from releases.
curl -L -O https://github.com/noborus/ov/releases/download/vx.x.x/ov_x.x.x-1_amd64.deb
sudo dpkg -i ov_x.x.x-1_amd64.deb
2.2. rpm package
You can download the package from releases.
sudo rpm -ivh https://github.com/noborus/ov/releases/download/vx.x.x/ov_x.x.x-1_amd64.rpm
2.3. MacPorts (macOS)
sudo port install ov
2.4. Homebrew(macOS or Linux)
brew install noborus/tap/ov
2.5. pkg (FreeBSD)
pkg install ov
2.6. Binary
You can download the binary from releases.
curl -L -O https://github.com/noborus/ov/releases/download/vx.x.x/ov_x.x.x_linux_amd64.zip
unzip ov_x.x.x_linux_amd64.zip
sudo install ov /usr/local/bin
2.7. go install
It will be installed in $GOPATH/bin by the following command.
go install github.com/noborus/ov@latest
2.8. go get(details or developer version)
First of all, download only with the following command without installing it.
go get -d github.com/noborus/ov
cd $GOPATH/src/github.com/noborus/ov
Next, to install to $GOPATH/bin, run the make install command.
make install
Or, install it in a PATH location for other users to use (For example, in /usr/local/bin).
make
sudo install ov /usr/local/bin
3. Usage
3.1. Basic usage
ov supports open file name or standard input.
ov filename
cat filename|ov
Used by other commands by setting the environment variable PAGER.
export PAGER=ov
See the ov site for more use cases.
3.2. Config
You can set style and key bindings in the setting file.
Create a .ov.yaml
file in your user's home directory.
for example.
$HOME/.ov.yaml
Windows.
%USERPROFILE%/.ov.yaml
Please refer to the sample ov.yaml configuration file.
If you like less
key bindings, copy ov-less.yaml and use it.
3.3. Header
The --header
(-H
) option fixedly displays the specified number of lines.
ov --header 1 README.md
When used with the --skip-lines
option, it hides the number of lines specified by skip and then displays the header.
ov --skip-lines 1 --header 1 README.md
3.4. Column Mode
Specify the delimiter with --column-delimiter
and set it to --column-mode
to highlight the column.
ov --column-delimiter "," --column-mode test.csv
3.5. Wrap/NoWrap
Supports switching between wrapping and not wrapping lines.
The option is --wrap
, specify --wrap=false
if you do not want to wrap.
After startup, toggle display with wrap (default key w
).
3.6. Alternate-Rows
Alternate row styles with the --alternate-rows
(-C
) option
The style can be set with Style customization.
ov --alternate-rows test.csv
3.7. Section
You specify --section-delimiter
, you can move up and down in section units.
The start of the section can be adjusted with --section-start
.
[section.png](docs/section.png)
The section-delimiter is written in a regular expression (for example: "#"). (Line breaks are not included in matching lines).
For example, if you specify "diff" for a diff that contains multiple files, you can move the diff for each file.
3.8. Follow mode
Output appended data and move it to the bottom line (like tail -f
).
ov --follow-mode /var/log/syslog
(while :; do echo random-$RANDOM; sleep 0.1; done;)|./ov --follow-mode
3.9. Follow all mode
Same as follow-mode, and switches to the last updated file when there are multiple files.
ov --follow-all /var/log/nginx/access.log /var/log/nginx/error.log
3.10. Follow section mode
Follow mode is line-by-line, while follow section mode is section-by-section. Follow section mode displays the bottom section. The following example is displayed from the header (#) at the bottom.
ov --section-delimiter "^#" --follow-section README.md
Watch mode is a mode in which --follow-section
and
--section-delimiter "^\f"
are automatically set.
3.11. Exec mode
Execute the command to display stdout/stderr separately.
Arguments after (--
) are interpreted as command arguments.
Shows the stderr screen as soon as an error occurs, when used with --follow-all
.
ov --follow-all --exec -- make
3.12. Search
Search by forward search /
key(default) or the backward search ?
key(defualt).
Search can be toggled between incremental search, regular expression search, and case sensitivity.
Displayed when the following are enabled in the search input prompt:
Function | display | (Default)key | command option |
---|---|---|---|
Incremental search | (I) | alt+i | --incremental |
Regular expression search | (R) | alt+r | --regexp-search |
Case sensitive | (Aa) | alt+c | -i, --case-sensitive |
3.13. Mark
Mark the display position with the m
key(default).
The mark is decorated with StyleMarkLine
and MarkStyleWidth
.
Marks can be erased individually with the M
key(default).
It is also possible to delete all marks with the ctrl + delete
key(default).
Use the >
next and <
previous (default) key to move to the marked position.
3.14. Watch
ov
has a watch mode that reads the file every N seconds and adds it to the end.
When you reach EOF, add '\f' instead.
Go further to the last section.
The default is'section-delimiter', so the last loaded content is displayed.
for example.
ov --watch 1 /proc/meminfo
3.15. Mouse support
The ov makes the mouse support its control.
This can be disabled with the option --disable-mouse
.
If mouse support is enabled, tabs and line breaks will be interpreted correctly when copying.
Copying to the clipboard uses atotto/clipboard. For this reason, the 'xclip' or 'xsel' command is required in Linux/Unix environments.
Selecting the range with the mouse and then left-clicking will copy it to the clipboard.
Pasting in ov is done with the middle button. In other applications, it is pasted from the clipboard (often by pressing the right-click).
4. Command option
$ ov --help
ov is a feature rich pager(such as more/less).
It supports various compressed files(gzip, bzip2, zstd, lz4, and xz).
Usage:
ov [flags]
Flags:
-C, --alternate-rows alternately change the line color
-i, --case-sensitive case-sensitive in search
-d, --column-delimiter string column delimiter (default ",")
-c, --column-mode column mode
--completion string generate completion script [bash|zsh|fish|powershell]
--config string config file (default is $HOME/.ov.yaml)
--debug debug mode
--disable-mouse disable mouse support
-e, --exec exec command
-X, --exit-write output the current screen when exiting
-a, --exit-write-after int NUM after the current lines when exiting
-b, --exit-write-before int NUM before the current lines when exiting
-A, --follow-all follow all
-f, --follow-mode follow mode
--follow-section follow section
-H, --header int number of header rows to fix
-h, --help help for ov
--help-key display key bind information
--incsearch incremental search (default true)
-n, --line-number line number mode
-F, --quit-if-one-screen quit if the output fits on one screen
--regexp-search regular expression search
--section-delimiter string section delimiter
--section-start int section start position
--skip-lines int skip the number of lines
-x, --tab-width int tab stop width (default 8)
-v, --version display version information
-T, --watch int watch mode interval
-w, --wrap wrap mode (default true)
It can also be changed after startup.
5. Key bindings
[Escape], [q] * quit
[ctrl+c] * cancel
[Q] * output screen and quit
[ctrl+q] * set output screen and quit
[ctrl+z] * suspend
[h], [ctrl+F1], [ctrl+alt+c] * display help screen
[ctrl+F2], [ctrl+alt+e] * display log screen
[ctrl+l] * screen sync
[ctrl+f] * follow mode toggle
[ctrl+a] * follow all mode toggle
[ctrl+alt+r] * enable/disable mouse
Moving
[Enter], [Down], [ctrl+N] * forward by one line
[Up], [ctrl+p] * backward by one line
[Home] * go to top of document
[End] * go to end of document
[PageDown], [ctrl+v] * forward by page
[PageUp], [ctrl+b] * backward by page
[ctrl+d] * forward a half page
[ctrl+u] * backward a half page
[left] * scroll to left
[right] * scroll to right
[ctrl+left] * scroll left half screen
[ctrl+right] * scroll right half screen
[g] * go to line(input number)
Move document
[]] * next document
[[] * previous document
[ctrl+k] * close current document
Mark position
[m] * mark current position
[M] * remove mark current position
[ctrl+delete] * remove all mark
[>] * move to next marked position
[<] * move to previous marked position
Search
[/] * forward search mode
[?] * backward search mode
[n] * repeat forward search
[N] * repeat backward search
Change display
[w], [W] * wrap/nowrap toggle
[c] * column mode toggle
[C] * alternate rows of style toggle
[G] * line number toggle
Change Display with Input
[p], [P] * view mode selection
[d] * column delimiter string
[H] * number of header lines
[ctrl+s] * number of skip lines
[t] * TAB width
Section
[alt+d] * section delimiter regular expression
[ctrl+F3], [alt+s] * section start position
[space] * next section
[^] * previous section
[9] * last section
[F2] * follow section mode toggle
Close and reload
[ctrl+F9], [ctrl+alt+s] * close file
[F5], [ctrl+alt+l] * reload file
[F4], [ctrl+alt+w] * watch mode
[ctrl+w] * set watch interval
Key binding when typing
[alt+c] * case-sensitive toggle
[alt+r] * regular expression search toggle
[alt+i] * incremental search toggle
6. Customize
6.1. Style customization
You can customize the following items.
- StyleAlternate
- StyleHeader
- StyleOverStrike
- StyleOverLine
- StyleLineNumber
- StyleSearchHighlight
- StyleColumnHighlight
- StyleMarkLine
- StyleSectionLine
Specifies the color name for the foreground and background colors. Specify bool values for Reverse, Bold, Blink, Dim, Italic, and Underline.
[Example]
StyleAlternate:
Background: "gray"
Bold: true
Underline: true
item name | value | example |
---|---|---|
Foreground | "color name" or "rgb" | "red" |
Background | "color name" or "rgb" | "#2a2a2a" |
Reverse | true/false | true |
Bold | true/false | true |
Blink | true/false | true |
Dim | true/false | false |
Italic | true/false | false |
Underline | true/false | false |
6.2. Key binding customization
You can customize key bindings.
[Example]
down:
- "Enter"
- "Down"
- "ctrl+N"
up:
- "Up"
- "ctrl+p"
See ov.yaml for more information.