mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-20 19:31:58 +00:00
d3bb52d7d8
By default, `typeset` defines variables locally unless in the main scope. This is specially bad when using `omz plugin load`, which happens inside a function, so the declared variables don't continue being defined when the function finishes and the main scope reappears.
53 lines
1.4 KiB
Bash
53 lines
1.4 KiB
Bash
# 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 -g __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 "$@"
|
|
}
|