diff --git a/.local/dotfiles/environment/less.zsh b/.local/dotfiles/environment/less.zsh index ee07317..50b0678 100644 --- a/.local/dotfiles/environment/less.zsh +++ b/.local/dotfiles/environment/less.zsh @@ -15,3 +15,7 @@ export LESS_TERMCAP_ue=$'\e[0m' # end underline #export LESS_TERMCAP_mr=$(tput rev) #export LESS_TERMCAP_mh=$(tput dim) + +export LESS="-R" +export LESSOPEN="|~/bin/lessfilter %s" + diff --git a/bin/lessfilter b/bin/lessfilter new file mode 100755 index 0000000..b0633d4 --- /dev/null +++ b/bin/lessfilter @@ -0,0 +1,35 @@ +#!/bin/bash + +filename=$(basename "$1") + +case "$filename" in + *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\ + *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\ + *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\ + *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass) + if type -p pygmentize > /dev/null; then + pygmentize -f 256 "$1" + else + exit 1 + fi + ;; + .bashrc|.bash_aliases|.bash_environment|.zshrc|.zimrc|.zlogin) + if type -p pygmentize > /dev/null; then + pygmentize -f 256 -l sh "$1" + else + exit 1 + fi + ;; + *) + if grep -q "#\!/bin/bash" "$1" 2>/dev/null; then + if type -p pygmentize > /dev/null; then + pygmentize -f 256 -l sh "$1" + else + exit 1 + fi + else + exit 1 + fi + ;; +esac +