#!/usr/bin/env zsh
zmodload zsh/zutil
local -A headers range query expect
# -h: lines of headers
# -n: selection index, if it is QUERY, query string will be used
# -q: query string
# -e: expect key
zparseopts -E h:=headers n:=range q:=query e:=expect
print -r -- "${query//\"/}"
print -r -- "$expect"
print -r -- "${query//\"/}" >&2
local -a lines=()
while read input; do
lines+=(${input%$'\033[00m'})
done
for ((i = 1; i <= headers; i++)); do
print -r -- $lines[i] >&2
done
lines[1,headers]=()
for i in {1..$#lines}; do
print -r -- ${lines[i]//$'\0'}"" >&2
done
if [[ $range != QUERY ]]; then
for i in ${(s:,:)range}; do
print -r -- $lines[i]
done
fi