about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/X/_xrdb9
-rw-r--r--Functions/Zle/incarg43
2 files changed, 52 insertions, 0 deletions
diff --git a/Completion/X/_xrdb b/Completion/X/_xrdb
new file mode 100644
index 000000000..585e5909f
--- /dev/null
+++ b/Completion/X/_xrdb
@@ -0,0 +1,9 @@
+#compdef xrdb
+
+_arguments \
+  -{help,all,global,screen,screens,n,quiet,nocpp,symbols,query,load,merge,remove,retain} \
+  '-display:display:_x_display' \
+  '-cpp:preprocessor program:_files -g \*\(\*\)' \
+  '-edit:file to insert:_files' \
+  '-backup:suffix for backup: ' \
+  '*:defaults file:_files'
diff --git a/Functions/Zle/incarg b/Functions/Zle/incarg
new file mode 100644
index 000000000..c4b05d01f
--- /dev/null
+++ b/Functions/Zle/incarg
@@ -0,0 +1,43 @@
+# Shell function to increment an integer either under the cursor or just
+# to the left of it.  Use
+#   autoload -U incarg
+#   zle -N incarg
+#   bindkey "..." incarg
+# to define it.  For example,
+#   echo 41
+#        ^^^ cursor anywhere here
+# with incarg gives
+#   echo 42
+# with the cursor in the same place.
+#
+# A numeric argument gives a number other than 1 to add (may be negative).
+# If you're going to do it a lot with one particular number, you can set
+# the parameter incarg to that number (a numeric argument still takes
+# precedence).
+
+emulate -L zsh
+setopt extendedglob
+
+local rrest lrest num
+
+rrest=${RBUFFER##[0-9]#}
+if [[ $RBUFFER = [0-9]* ]]; then
+  if [[ -z $rrest ]]; then
+    num=$RBUFFER
+  else
+    num=${RBUFFER[1,-$#rrest-1]}
+  fi
+fi
+
+lrest=${LBUFFER%%[0-9]#}
+if [[ $LBUFFER = *[0-9] ]]; then
+  if [[ -z $lrest ]]; then
+    num="$LBUFFER$num"
+  else
+    num="${LBUFFER[$#lrest+1,-1]}$num"
+  fi
+fi
+
+[[ -n $num ]] && (( num += ${NUMERIC:-${incarg:-1}} ))
+
+BUFFER="$lrest$num$rrest"