我正在尝试为zsh编写一个函数,以使用fzf查找文件并直接在编辑器中将其打开。 调用fzf的参数存储在变量中,如下所示:
FZF_FILE_PREVIEW="--preview 'cat {}) 2> /dev/null | head -200'"
函数如下:
fzf_find_edit() {
local file=$(fzf ${FZF_FILE_PREVIEW})
if [[ -n $file ]]; then
$EDITOR $file
fi
}
但是似乎FZF_FILE_PREVIEW
不能正确展开,因为在运行该函数时,我得到:
unknown option: --preview 'cat {}) 2> /dev/null | head -200'
如果我直接跑步
fzf --preview 'cat {}) 2> /dev/null | head -200'
它按预期工作。
如何使变量正确扩展?
答案 0 :(得分:0)
借助zsh IRC频道,我想出了解决的办法:
使用()为变量分配一个数组:
FZF_FILE_PREVIEW=(--preview 'cat {}) 2> /dev/null | head -200')
,然后可以引用为:
file=($(fzf ${FZF_FILE_PREVIEW}))
仅当导出数组时,它才会变得棘手:
export FZF_CTRL_T_OPTS=${(j< >)${(@q-)FZF_FILE_PREVIEW}}
加入数组的元素,进一步的说明在docs中。