/colored_man_pages.fish

Fish shell plugin to colorize man pages

Primary LanguageShellMIT LicenseMIT

colored_man_pages.fish

A plugin for the fish-shell.

MIT License Fish Shell Version Oh My Fish Framework


This plugin installs a fish function wrapper around man that colorizes styled text (specifically underlined, bold, and standout) to make browsing man pages easier and more enjoyable.

The colors are added by setting environment variables that control how less, man's default pager, processes styled text. Why can't we just set those environment variables in our shell configuration instead of using this plugin? Well, if we simply set environment variables, they contain escape sequences that will "overflow" into the output of other commands reading environment variables. See this Stackoverflow question for an explanation.

colored man page for less

Credits: This idea was first inspired by Arch Linux wiki.

Note: decors/fish-colored-man is a very similar plugin. Differences:

  • colored_man_pages.fish includes a wrapper to also colorize the output of utilities that rely on less, such as git help
  • fish-colored-man allows configuring colors

Install

With fisher

$ fisher install patrickf1/colored_man_pages.fish

Usage

Just invoke man as usual, but without changing the pager, to get colored output. For example

$ man less

To execute vanilla man without colored output, we can bypass the wrapper using command. For example

$ command man less

To colorize the output of utilities that rely on less, use the cless (short for colored less) wrapper to configure less before executing the utility. For example

$ cless git help merge
$ cless git help log

License

MIT © Patrick