| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- #!/bin/sh
 
- # Script for using ViM as a PAGER.
 
- # Based on Bram's less.sh.
 
- # Version 1.4
 
- # git://github.com/rkitover/vimpager.git
 
- file="$@"
 
- if [ -z "$file" ]; then file="-"; fi
 
- if uname -s | grep -iq cygwin; then
 
-     cygwin=1
 
- elif uname -s | grep -iq linux; then
 
-     linux=1
 
- elif uname -s | grep -iq sunos; then
 
-     solaris=1
 
- else
 
-     bsd=1
 
- fi
 
- less_vim() {
 
-     vim -R \
 
-     -c 'let no_plugin_maps = 1' \
 
-     -c 'set scrolloff=999' \
 
-     -c 'runtime! macros/less.vim' \
 
-     -c 'set foldlevel=999' \
 
-     -c 'set mouse=h' \
 
-     -c 'set nonu' \
 
-     -c 'nmap <ESC>u :nohlsearch<cr>' \
 
-     "$@"
 
- }
 
- do_ps() {
 
-     if [ $solaris ]; then
 
-         ps -u `id -u` -o pid,comm=
 
-     elif [ $bsd ]; then
 
-         ps -U `id -u` -o pid,comm=
 
-     else
 
-         ps fuxw
 
-     fi
 
- }
 
- pproc() {
 
-     if [ $linux ]; then
 
-         ps -p $1 -o comm=
 
-     elif [ $cygwin ]; then
 
-         ps -p $1 | sed -e 's/^I/ /' | grep -v PID
 
-     else
 
-         ps -p $1 -o comm= | grep -v PID
 
-     fi
 
- }
 
- ppid() {
 
-     if [ $linux ]; then
 
-         ps -p $1 -o ppid=
 
-     elif [ $cygwin ]; then
 
-         ps -p $1 | sed -e 's/^I/ /' | grep -v PID | awk '{print $2}'
 
-     else
 
-         ps -p $1 -o ppid= | grep -v PID
 
-     fi
 
- }
 
- # Check if called from man, perldoc or pydoc
 
- if do_ps | grep -q '\(py\(thon\|doc\|doc2\)\|man\|perl\(doc\)\?\([0-9.]*\)\?\)\>'; then
 
-     proc=$$
 
-     while next_parent=`ppid $proc` && [ $next_parent != 1 ]; do
 
-         if pproc $next_parent | grep -q 'man\>'; then
 
-             cat $file | sed -e 's/\[[^m]*m//g' | sed -e 's/.//g' | less_vim -c 'set ft=man' -; exit
 
-         elif pproc $next_parent | grep -q 'py\(thon\|doc\|doc2\)\>'; then
 
-             cat $file | sed -e 's/\[[^m]*m//g' | sed -e 's/.//g' | less_vim -c 'set ft=man' -; exit
 
-         elif pproc $next_parent | grep -q 'perl\(doc\)\?\([0-9.]*\)\?\>'; then
 
-             cat $file | sed -e 's/.//g' | less_vim -c 'set ft=man' -; exit
 
-         fi
 
-         proc=$next_parent
 
-     done
 
- fi
 
- less_vim "$file"
 
- # CONTRIBUTORS:
 
- #
 
- # Rafael Kitover
 
- # Antonio Ospite
 
- # Jean-Marie Gaillourdet
 
- # Perry Hargrave
 
- # Koen Smits
 
- # Ivan S. Freitas <ivansichfreitas@gmail.com>
 
 
  |