![如何在 Mac 终端上使用 bash 来使用 fzf](https://linux22.com/image/1424566/%E5%A6%82%E4%BD%95%E5%9C%A8%20Mac%20%E7%BB%88%E7%AB%AF%E4%B8%8A%E4%BD%BF%E7%94%A8%20bash%20%E6%9D%A5%E4%BD%BF%E7%94%A8%20fzf.png)
我找到了一个叫 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 对我来说就解决了问题。