From 94ea7a8cd41b5b0cebf2606f4319ca5050e80520 Mon Sep 17 00:00:00 2001
From: "B. Watson" <yalhcru@gmail.com>
Date: Sun, 5 Jul 2020 21:03:38 -0400
Subject: Add some new stuff

---
 vipaste | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100755 vipaste

(limited to 'vipaste')

diff --git a/vipaste b/vipaste
new file mode 100755
index 0000000..15cc892
--- /dev/null
+++ b/vipaste
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+usage() {
+  cat <<EOF
+$SELF - edit X11 selection buffer
+
+Usage: $SELF [-n]
+
+Loads the current contents of the X11 selection (copy/paste) buffer
+into an editor. After editing & exiting the editor, the results are
+copied back into the selection buffer, for pasting elsewhere.
+
+The last line (only line, for 1-line selections) will have its newline
+removed, if there is one.
+
+If the file is empty after editing, or if the editor exits with
+non-zero (error) status, the selection buffer won't be altered.
+
+To start with an empty buffer rather than the current selection, use
+the -n option.
+
+The editor to be run is set via VISUAL in the environment. If it's not
+set, EDITOR is used if set. If neither is set, vi is used. If you're
+going to run this without a terminal (e.g. using xbindkeys or a "Run
+Program" dialog), you'll want to set VISUAL to something that doesn't
+require a terminal (e.g. a GUI editor like gvim or gedit).
+
+Requires xsel and perl on the PATH.
+
+Written by B. Watson <yalhcru@gmail.com> and released under the WTFPL.
+EOF
+  exit $1
+}
+
+set -e
+
+SELF="$( basename $0 )"
+CMD="xsel -o"
+
+[ "$1"  = "--help" ] && usage 0
+[ "$1"  = "-n"     ] && CMD=":"  && shift
+[ "$1" != ""       ] && usage 1
+
+TMPFILE="$( mktemp -t $SELF.XXXXXX )"
+trap "rm -f \"$TMPFILE\"" EXIT
+
+$CMD > "$TMPFILE"
+${VISUAL:-${EDITOR:-vi}} "$TMPFILE"
+
+# remove the newline(s) from the end of the file
+perl -i -0777 -pe 's/\n*$//' "$TMPFILE"
+
+[ -s "$TMPFILE" ] && xsel -i < "$TMPFILE"
-- 
cgit v1.2.3