运行当前命令并将输出传送到 fzf

运行当前命令并将输出传送到 fzf

有什么简单的方法可以将 fish 中的键绑定到运行当前命令提示符并将其传送到 fzf 以便于搜索/选择?

即通过 1 次按键的方式完成| fzf (enter)

答案1

bind如果我理解正确的话,这似乎是一个非常简单的函数。最简单的是:

保存于~/.config/fish/functions/__append_pipe_fzf.fish

function __append_pipe_fzf
    set -l cmd (commandline -b)
    commandline -r $cmd" | fzf"
    commandline -f execute
end

然后将其绑定到某个键,例如: bind -k nul __append_pipe_fzf nul 绑定到Ctrl+ Space(或者Mac 上的+ Space,我相信这是你的情况)。

当然,您可以通过检查当前命令是否以以 开头的进程结束| fzf并删除它来使其更加强大。现在,| fzf即使您已经有一个,它也可以附加 。此外,如果您在当前命令行以 结尾时按下它|,我认为它会生成一个“或”语句,而不是您想要的。

相关内容