ov is a terminal pager.

tail -f / tail -F).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
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
sudo port install ov
brew install ov
winget install -e --id noborus.ov
pkg install ov
You can install ov using an AUR helper.
Choose an AUR package:
ov is available as a nix package. You can install it with
nix profile install nixpkgs#ov
if you use flakes, or using nix-env otherwise:
nix-env -iA nixpkgs.ov
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
It will be installed in $GOPATH/bin by the following command.
go install github.com/noborus/ov@latest
Or to install the latest commit from master:
go install github.com/noborus/ov@master
First of all, clone this repo with either git clone or gh repo clone, then cd to the directory, for example:
git clone https://github.com/noborus/ov.git
cd 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
You can generate completion scripts for bash, zsh, fish, and powershell.
ov --completion bash > /etc/bash_completion.d/ov
ov --completion zsh > /usr/share/zsh/site-functions/_ov
For zinit users.
zinit load 'https://github.com/noborus/ov/blob/master/ov.plugin.zsh'
ov --completion fish > ~/.config/fish/completions/ov.fish
ov --completion powershell | Out-String | Invoke-Expression
ov supports open file name or standard input.
ov filename
cat filename|ov
You can also explicitly specify standard input as -.
cat filename | ov -
Used by other commands by setting the environment variable PAGER.
export PAGER=ov
See the ov site for more use cases and examples.
[!NOTE] (default key
key) indicates the key that can be specified even after starting the same function as the command line option.
You can set style and key bindings in the configuration file.
ov will look for a configuration file in the following paths in descending order:
$XDG_CONFIG_HOME/ov/config.yaml
$HOME/.config/ov/config.yaml
$HOME/.ov.yaml
On Windows:
%USERPROFILE%/.config/ov/config.yaml
%USERPROFILE%/.ov.yaml
Create a config.yaml file in one of the above directories. If the file is in the user home directory, it should be named .ov.yaml.
v0.53.0 and later
You can generate a default configuration with:
ov --generate-config > ~/.config/ov/config.yaml
On Windows (PowerShell):
ov --generate-config > $env:USERPROFILE/.config/ov/config.yaml
[!NOTE] If you like
lesskey bindings, generate it with--generate-config=less.
ov --generate-config=less > ~/.config/ov/config.yaml
The --header (-H) (default key H) option fixedly displays the specified number of lines.
ov --header 1 README.md
Related styling: Header and HeaderBorder.
When used with the --skip-lines (default key Ctrl+s) option, it hides the number of lines specified by skip and then displays the header.
ov --skip-lines 1 --header 1 README.md
The --vertical-header (-y) (default key y) option fixedly displays the specified number of characters.
ov --vertical-header=4 README.md
If you want to specify by column instead of character, see Header Column.
Related styling: VerticalHeader and VerticalHeaderBorder.
Specify the delimiter with --column-delimiter(default key is d) and set it to --column-mode(default key is c) to highlight the column.
ov --column-delimiter "," --column-mode test.csv
Regular expressions can be used for the --column-delimiter.
Enclose in '/' when using regular expressions.
[!TIP] Use regex delimiters like
/\s+/for variable whitespace or/[,;]/for multiple delimiter characters.
ps aux | ov -H1 --column-delimiter "/\s+/" --column-rainbow --column-mode
Related styling: ColumnHighlight,ColumnRainbow.
The --header-column (-Y) (default key is Y) option fixedly displays the specified number of columns when column-mode is enabled.
ov --column-mode --column-delimiter="," --header-column=2 test.csv
When in column-mode, pressing F will switch to fixed display for the selected columns up to that point.
Related styling: VerticalHeader and VerticalHeaderBorder.
You can also color each column individually in column mode.
Specify --column-rainbow(default key is Ctrl+r) in addition to the --column-mode option.
Color customization is possible. Please specify 7 or more colors in config.yaml.
Style:
ColumnRainbow:
- Foreground: "white"
- Foreground: "aqua"
- Foreground: "lightsalmon"
- Foreground: "lime"
- Foreground: "blue"
- Foreground: "yellowgreen"
- Foreground: "red"
Style specifications other than Foreground can also be specified.
Style:
ColumnRainbow:
- Foreground: "white"
Background: "red"
- Foreground: "aqua"
Underline: true
- Foreground: "#ff7f00"
Background: "blue"
Bold: true
- Foreground: "lime"
Italic: true
- Foreground: "blue"
Dim: true
- Foreground: "yellowgreen"
- Foreground: "red"
Related styling: ColumnRainbow.
The --column-width option is designed for command output with irregular spaces, such as ps aux, df, etc. (default key Alt+o).
It automatically detects and separates columns without needing a specific delimiter.
ps aux|ov -H1 --column-width --column-rainbow

This column-width featu