feat: add plugins for zsh
This commit is contained in:
36
.zsh/zsh-fzf-tab/test/select
Executable file
36
.zsh/zsh-fzf-tab/test/select
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/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>${query//\"/}</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'}"<EC>" >&2
|
||||
done
|
||||
|
||||
if [[ $range != QUERY ]]; then
|
||||
for i in ${(s:,:)range}; do
|
||||
print -r -- $lines[i]
|
||||
done
|
||||
fi
|
||||
Reference in New Issue
Block a user