My personal wrapper for the eza command line utility.
- better defaults
- automatic paging
- config file
Clone this repository anywhere. If you have just, you can do just install, otherwise run cargo install --path .. Requires rust to be installed.
Requires eza and a pager to be found in PATH. The default pager is less but can be configured.
Tip:
ez --helpwill display the help message.ez -- --helpwill display eza's help message.
There are a only a few command line options:
-gDisplay in grid mode. Sets--gridwhen calling eza.-tDisplay in tree mode. Sets--treewhen calling eza.-1Display in single line mode. Sets--onelinewhen calling eza.-lEnable long-listing. Sets--longwhen calling eza.-iRespect.gitignore. Sets--git-ignorewhen calling eza.-p <WHEN>When to page output. Can beauto,always, ornever.-debugEnable debug mode. Describes the current configuration with all config and options merged, but doesn't actually call eza.
Some other notes:
-g,-t, and-1are exclusive. Only one may be set, or none.- The default display mode is handled by eza.
- If no display mode is set, it defaults to grid.
- If no display mode is set AND
-lis set, then oneline is used. - eza supports specifying both
-gand-l.
- In debug mode, if you don't see the pager command/args listed, that means ez decided not to page output.
If you want to override any eza options manually, pass them in after --:
ez -t -- --color=never
ez ~/.Downloads -- --hyperlink
ez -l ~/.config -- -oYou can create a user config file in the standard location for your platform:
- linux:
$HOME/.config/ez/config.toml - windows:
$HOME\AppData\Roaming\ez\config.toml - mac:
$HOME/Library/Application Support/ez/config.toml
These options override defaults, but cli options override everything.
An example config file can be found here, with all the default values.
eza has a lot of options, so I wanted my favorite defaults to be available automatically without using aliases.
eza and ls don't support automatic paging with colors, which is a common feature for modern user-focused cli tools.
I prefer to have a lighter .bashrc when convenient, since it has to run every time bash is started. It's better to have a config file that's only loaded when the specific tool is used.
I'm currently using eza as my ls alternative. It has a lot more features than just being a basic ls wrapper (e.g. tree display, gradient coloring, icons), so I decided not to reinvent the wheel.