# Requires colors autoload. # See termcap(5). # Set up once, and then reuse. This way it supports user overrides after the # plugin is loaded. typeset -AHg less_termcap # bold & blinking mode less_termcap[mb]="${fg_bold[red]}" less_termcap[md]="${fg_bold[red]}" less_termcap[me]="${reset_color}" # standout mode less_termcap[so]="${fg_bold[yellow]}${bg[blue]}" less_termcap[se]="${reset_color}" # underlining less_termcap[us]="${fg_bold[green]}" less_termcap[ue]="${reset_color}" # Handle $0 according to the standard: # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" # Absolute path to this file's directory. typeset __colored_man_pages_dir="${0:A:h}" function colored() { local -a environment # Convert associative array to plain array of NAME=VALUE items. local k v for k v in "${(@kv)less_termcap}"; do environment+=( "LESS_TERMCAP_${k}=${v}" ) done # Prefer `less` whenever available, since we specifically configured # environment for it. environment+=( PAGER="${commands[less]:-$PAGER}" ) # See ./nroff script. if [[ "$OSTYPE" = solaris* ]]; then environment+=( PATH="${__colored_man_pages_dir}:$PATH" ) fi command env $environment "$@" } # Colorize man and dman/debman (from debian-goodies) function man \ dman \ debman { colored $0 "$@" }