如何使用 bash 在 Mac 终端上使用 fzf

mar*_*ark 9 terminal bash macos

我找到了一个名为 fzf https://github.com/junegunn/fzf的实用程序,它是您的 shell 的模糊查找器。

两个问题:

1)运行fzf并运行文件后,我按Enter然后我找到的文件在终端中输出。而不是Enter,我应该按什么键将该文件路径复制到我的 pastebin?

2)理想情况下,我希望能够执行以下操作: cat <pattern><hotkey> 在其中键入文件名的一部分,然后按热键开始 fzf 搜索该模式。有没有办法做到这一点?

Jun*_*hoi 8

我建议你通读自述页面。您需要对 shell 脚本有基本的了解才能充分利用 fzf。

fzf 是一个 Unix 过滤器,就像 grep 或 sed 一样,它所做的只是打印选定的项目。如何处理输出完全取决于您。


1)运行fzf并运行文件后,按Enter键,然后在终端中输出找到的文件。我应该按什么键而不是 Enter 将该文件路径复制到我的 pastebin?

您可以使用pbcopy命令将结果存储在剪贴板中,如下所示:

fzf | pbcopy
Run Code Online (Sandbox Code Playgroud)

使用 fzf 的更传统方法是将其与命令替换一起使用:

cat $(fzf)
Run Code Online (Sandbox Code Playgroud)

或者使用将CTRL-T所选文件的名称粘贴到命令行的键绑定:

cat <CTRL-T>
Run Code Online (Sandbox Code Playgroud)

2) 理想情况下,我希望能够执行以下操作: cat 在其中键入文件名的一部分,然后按热键开始 fzf 搜索该模式。有没有办法做到这一点?

fzf 附带了 bash 的模糊完成功能。请参阅此处了解更多详情。要调用自动完成,请在模式后附加两个星号并按如下方式按 Tab 键:

cat pat**<Tab>
Run Code Online (Sandbox Code Playgroud)

如果你不使用 bash,你能做的最接近的事情就是使用上面提到的 CTRL-T 键绑定。

请参阅:https : //github.com/junegunn/fzf#key-bindings-for-command-line

  • `brew install fzf` 只会安装 fzf 可执行文件。为了安装额外的功能,你必须在安装后运行附带的 `install` 脚本。有关更多信息,请参阅`brew info fzf`。 (7认同)