![使用 fzf 的 CTRL+T 将命令放入命令行](https://linux22.com/image/227090/%E4%BD%BF%E7%94%A8%20fzf%20%E7%9A%84%20CTRL%2BT%20%E5%B0%86%E5%91%BD%E4%BB%A4%E6%94%BE%E5%85%A5%E5%91%BD%E4%BB%A4%E8%A1%8C.png)
我在一个文件(称为 sniplist)中保留了常用命令片段的列表,我用它来将需要的内容剪切/复制到命令行上,以便在执行之前进行进一步编辑。我想我可以利用 fzf 的 CTRL+T 选项来更轻松地完成这项工作。相关的默认环境变量是:
export FZF_CTRL_T_COMMAND="find . -type f -printf '%P\n'"
所以我简单地将其更改为:
export FZF_CTRL_T_COMMAND="cat ~/sniplist"
这按预期向我展示了我的片段列表。我选择一行,它出现在命令行上——但所有非字母字符都用反斜杠转义。例如,这样的行:
seq 0 4 100 | fzf --preview="date -d '{} week 18 april 2023'"
放在命令行上如下:
seq\ 0\ 4\ 100\ \|\ fzf\ --preview=\"date\ -d\ \'\{\}\ \ week\ 18\ april\ 2023\'\"
我怎样才能避免这种不良影响?