From c9c896dea2ba43551c4e10bd49666105449e9bd7 Mon Sep 17 00:00:00 2001
From: Aaron LI <aaronly.me@gmail.com>
Date: Thu, 31 Mar 2016 10:57:34 +0800
Subject: add all scripts/tools

---
 cli/vimpager | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100755 cli/vimpager

(limited to 'cli/vimpager')

diff --git a/cli/vimpager b/cli/vimpager
new file mode 100755
index 0000000..447fd9a
--- /dev/null
+++ b/cli/vimpager
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+# Script for using ViM as a PAGER.
+# Based on Bram's less.sh.
+# Version 1.3
+
+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\)\|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\)\>'; 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
-- 
cgit v1.2.2