Add less termcap colour variables

Set `less` termcap colour variables, and update the module README.md.
Change the code to enclose all colour logic within a
`(( ${terminfo[colors]} >= 8 ))` condition.
Check if `PAGER` is set before setting the `lm` alias.

Keeping the British "colour" spelling. :-)

Closes #101
This commit is contained in:
Eric Nielsen 2016-10-28 16:17:34 -05:00 committed by Matt Hamilton
parent 1801faf39c
commit 7a289c4c0d
2 changed files with 47 additions and 37 deletions

View File

@ -3,7 +3,7 @@ Utility
Utility aliases and functions.
Adds colour to `ls` and `grep`.
Adds colour to `ls`, `grep` and `less`.
Aliases
-------
@ -30,7 +30,7 @@ Aliases `get` to ( `aria2c` || `axel` || `wget` || `curl` ).
| alias | command |
| ----- | ------- |
| `df` | `df -kh` |
| `df` | `df -kh` |
| `du` | `du -kh` |
### Condoms

View File

@ -3,49 +3,59 @@
#
#
# ls Colours
# Colours
#
if (( ${+commands[dircolors]} )); then
# GNU
if [[ -s ${HOME}/.dir_colors ]]; then
eval "$(dircolors --sh ${HOME}/.dir_colors)"
if (( ${terminfo[colors]} >= 8 )); then
# ls Colors
if (( ${+commands[dircolors]} )); then
# GNU
if [[ -s ${HOME}/.dir_colors ]]; then
eval "$(dircolors --sh ${HOME}/.dir_colors)"
else
eval "$(dircolors --sh)"
fi
alias ls='ls --group-directories-first --color=auto'
else
eval "$(dircolors --sh)"
# BSD
# colours for ls and completion
export LSCOLORS='exfxcxdxbxGxDxabagacad'
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
# stock OpenBSD ls does not support colors at all, but colorls does.
if [[ $OSTYPE == openbsd* ]]; then
if (( ${+commands[colorls]} )); then
alias ls='colorls -G'
fi
else
alias ls='ls -G'
fi
fi
alias ls='ls --group-directories-first --color=auto'
else
# BSD
# colors for ls and completion
export LSCOLORS='exfxcxdxbxGxDxabagacad'
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
# stock OpenBSD ls does not support colors at all, but colorls does.
if [[ $OSTYPE == openbsd* ]]; then
if (( ${+commands[colorls]} )); then
alias ls='colorls -G'
# grep Colours
export GREP_COLOR='37;45' #BSD
export GREP_COLORS="mt=${GREP_COLOR}" #GNU
if [[ ${OSTYPE} == openbsd* ]]; then
if (( ${+commands[ggrep]} )); then
alias grep='ggrep --color=auto'
fi
else
alias ls='ls -G'
alias grep='grep --color=auto'
fi
fi
#
# grep Colours
#
export GREP_COLOR='37;45' #BSD
export GREP_COLORS="mt=${GREP_COLOR}" #GNU
if [[ ${OSTYPE} == openbsd* ]]; then
if (( ${+commands[ggrep]} )); then
alias grep='ggrep --color=auto'
# less Colours
if [[ ${PAGER} == 'less' ]]; then
export LESS_TERMCAP_mb=$'\E[1;31m' # Begins blinking.
export LESS_TERMCAP_md=$'\E[1;31m' # Begins bold.
export LESS_TERMCAP_me=$'\E[0m' # Ends mode.
export LESS_TERMCAP_se=$'\E[0m' # Ends standout-mode.
export LESS_TERMCAP_so=$'\E[7m' # Begins standout-mode.
export LESS_TERMCAP_ue=$'\E[0m' # Ends underline.
export LESS_TERMCAP_us=$'\E[1;32m' # Begins underline.
fi
else
alias grep='grep --color=auto'
fi
@ -54,7 +64,7 @@ fi
#
alias l='ls -lAh' # all files, human-readable sizes
alias lm="l | ${PAGER}" # all files, human-readable sizes, use pager
[[ -n ${PAGER} ]] && alias lm="l | ${PAGER}" # all files, human-readable sizes, use pager
alias ll='ls -lh' # human-readable sizes
alias lr='ll -R' # human-readable sizes, recursive
alias lx='ll -XB' # human-readable sizes, sort by extension (GNU only)
@ -98,7 +108,7 @@ fi
# not aliasing rm -i, but if safe-rm is available, use condom.
# if safe-rmdir is available, the OS is suse which has its own terrible 'safe-rm' which is not what we want
if (( ${+commands[safe-rm]} )) && (( ! ${+commands[safe-rmdir]} )); then
if (( ${+commands[safe-rm]} && ! ${+commands[safe-rmdir]} )); then
alias rm='safe-rm'
fi