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

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

我找到了一个叫 fzf 的实用程序https://github.com/junegunn/fzf这是你的 shell 的模糊查找器。

两个问题:

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

2) 理想情况下,我希望能够执行如下操作: cat <pattern><hotkey> 输入文件名称的一部分,然后按热键开始 fzf 搜索该模式。有办法吗?

答案1

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

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


1)我运行 fzf 并运行一个文件后,按下 Enter 键,然后我在终端中输出找到的文件。除了按 Enter 键之外,我应该按什么键才能将该文件路径复制到我的 pastebin?

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

fzf | pbcopy

使用 fzf 的更常规方式是使用命令替换:

cat $(fzf)

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

cat <CTRL-T>

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

fzf 附带了 bash 的模糊补全功能。请参阅这里了解更多详细信息。要调用自动完成功能,请将两个星号附加到模式并按下 Tab 键,如下所示:

cat pat**<Tab>

如果您不使用 bash,那么最接近的做法就是使用上面提到的 CTRL-T 键绑定。

看:https://github.com/junegunn/fzf#key-bindings-for-command-line

答案2

我尝试通过 homebrew 安装 fzf,我的 CTRL-T 和 pat** 快捷键也不起作用。我发现 fzf 向我的 .bashrc 添加了一些命令,但我的 .bashrc 没有被调用。

[ -f ~/.fzf.bash ] && source ~/.fzf.bash

将 .bashrc 中的相同源语句放入 .bash_aliases 对我来说就解决了问题。

相关内容