我试图轻松地将历史记录中的多行插入到当前提示中(以实现https://github.com/junegunn/fzf/issues/1806)。
假设我有行号,如何在提示中插入以换行符分隔的历史记录项列表?
如果我有一个号码,我可以这样做:
zle vi-fetch-history -n $num
但如果我尝试这样做两次,例如:
zle vi-fetch-history -n $num_1
zle vi-fetch-history -n $num_2
那么第二次调用将覆盖第一次调用。
它看起来像这个小部件在 zsh 源代码中用 C 实现,所以我不能直接延长它。
有没有办法做到这一点?
答案1
对于“行数”,我想你指的是历史行号。在这种情况下,您可以使用fc
内置:
local -a histnums=() histlines=()
# Insert code that collects history numbers into $histnums
local num; for num in $histnums; do
histlines+=( "$(fc -ln $num $num)" )
done
BUFFER="$(echo ${(F)histlines})"