有什么简单的方法可以将 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
即使您已经有一个,它也可以附加 。此外,如果您在当前命令行以 结尾时按下它|
,我认为它会生成一个“或”语句,而不是您想要的。