Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
[PATCH] Add xxd completion
- X-seq: zsh-workers 33381
- From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: [PATCH] Add xxd completion
- Date: Wed, 8 Oct 2014 08:20:16 +0000
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= daniel.shahaf.name; h=x-sasl-enc:date:from:to:subject:message-id :mime-version:content-type; s=mesmtp; bh=f4iUDYc8yZj+Xo/vh0XYhOy VeU0=; b=xw5uQhvJeNTeCdUWTMyawJCgphA390MWJ9+dnjsQtKxqltDBTEf10Gm sGeP62A00d3ZWva1LHEg6yk/rp9mKf+9pyPOS8Z+JsCjyEGq08wJ07G8v0mjYk8v nyw3hbYt9oafOm7eBM6059fUwaY7+V9MNvSIIcwRUEq6B2yxR2hM=
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=x-sasl-enc:date:from:to:subject :message-id:mime-version:content-type; s=smtpout; bh=f4iUDYc8yZj +Xo/vh0XYhOyVeU0=; b=EYqOm5xNFX9EiD24YF7K2/tWE4JKQ5fY4uQqWUmHhGb HVyUdYJo8ayeticzw3UpxbsnliWUmgAyLLZAGT8PzfdF+qFlh+IUOYHNU5Bj7Qah Ul5fiyACSMWHOinbn/NMlMG8c47OXJbgI+V4DJZYYurhKWMKHOUzkVHOQ+PCGmVQ =
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
Attached completion for xxd (a hex dump utility from Vim). It works,
but I haven't written completion functions before so I might have
overlooked something.
Cheers,
Daniel
From 104556bea66766b73f0b7b0812973c6da300670a Mon Sep 17 00:00:00 2001
From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
Date: Wed, 9 Jul 2014 16:23:53 +0000
Subject: [PATCH] Add xxd completion
---
Completion/Unix/Command/_xxd | 48 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 Completion/Unix/Command/_xxd
diff --git a/Completion/Unix/Command/_xxd b/Completion/Unix/Command/_xxd
new file mode 100644
index 0000000..62cf628
--- /dev/null
+++ b/Completion/Unix/Command/_xxd
@@ -0,0 +1,48 @@
+#compdef xxd
+
+local curcontext="$curcontext" ret=1 arguments
+
+# TODO: permit two hyphens (--autoskip, --groupsize, etc)
+# TODO: xxd -<tab> should show '-x' and '-x:' differently - give visual hint that there's a required argument
+
+# Output options compatibility matrix
+#
+# 0 - options conflict
+# 1 - options coexist
+#
+# (The matrix is symmetric, so implied values are not shown.)
+#
+# bEipru
+# bx10000
+# E-x0001
+# i--x001
+# p---x11
+# r----x0
+# u-----x
+
+
+arguments=(
+ # output options
+ '(-b -bits -i -include -p -postscript -plain -ps -r -reverse -u -uppercase)'{-b,-bits}'[output in binary digits, rather than hex]'
+ '( -E -EBCDIC -i -include -p -postscript -plain -ps -r -reverse )'{-E,-EBCDIC}'[print human-readable part in EBCDIC rather than ASCII]'
+ '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps -r -reverse )'{-i,-include}'[output in C include file style]'
+ '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps )'{-p,-postscript,-plain,-ps}'[read or write a plain hexdump (no line numbers or ASCII rendering)]'
+
+ '(-b -bits -E -EBCDIC -i -include -r -reverse -u -uppercase)'{-r,-reverse}'[reverse mode\: read a hex dump and output binary data]'
+ '(-b -bits -r -reverse -u -uppercase)'{-u,-uppercase}'[output upper-case hex digits]'
+
+ {-h,-help}'[display usage message]'
+ {-v,-version}'[show program version]'
+ '*'{-a,-autoskip}"[a single '*' replaces runs of NUL (toggleable)]"
+
+ {-c+,-cols}'[output ARG octets per line]:number of octets per line'
+ {-g+,-groupsize}'[separate the output every ARG octets]:number of octets per group'
+ {-l+,-len}'[output ARG octets]:number of octets to output'
+ {-s,-skip,-seek}'[add ARG to file positions in the input]:file offset (absolute or relative)'
+
+ ':files:_files'
+)
+
+_arguments -S $arguments && ret=0
+
+return ret
--
1.7.10.4
Messages sorted by:
Reverse Date,
Date,
Thread,
Author