一个致力于短小实用有趣的 Bash 系列 🌝
Bash “实趣”系列的第二篇来啦。
前言
今天介绍一个十分强大的 CLI 模糊查询工具命令 – fzf,由于 fzf 是一个通用的查询命令,基于 fzf 命令可以衍生出许许多多实用的命令。
(p.s 进入 github.com/junegunn/fz… 中获取更多信息)
使用
首先,我们需要安装 fzf 命令如下:
bash
brew install fzf
然后我们可以直接在命行中快速体验了。示意如下,可以通过 fzf 模糊查找文件如下:
妙用其一:文件查找
fzf 提供了丰富的布局参数,通过参数美化搜索界面:
bash
alias fzf.w="fzf --height 40% --layout reverse --info inline --border \
--preview 'file {}' --preview-window down:1:noborder \
--color 'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899'"
妙用其二:文件预览
请提前安装 bat 命令:github.com/sharkdp/bat
为了可以在终端使代码着色,请提前安装 bat。
bash
alias fzf.p="fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'"
可以简化一下,下次只要输入 f 即可:
bash
alias f="fzf.p"
妙用其三:Git 分支查找/Git Commit 查找
以此类推,可以通过 fzf 做到时髦的切换分支、或搜寻对应的 commit 内容。
bash
_fzf_gco() {
git branch | fzf | sed -e "s/* //g" | xargs -I {} git checkout {}
}
bash
_fzf_gcs() {
git log --oneline | fzf | grep -o -E "^[0-9a-z]+" | xargs -I {} git show {}
}
妙用其四:文件结构预览
在 macOS 系统下提前安装 fd 命令:github.com/sharkdp/fd
还可以预览文件夹结构 🙂
bash
_fzf_tree() {
fd --type d | fzf | xargs -I {} tree -C {}
}
妙用无穷
正因为 fzf 是一个如此通用的命令,我们可以机智的结合其它 shell 命令玩出许多花样。
bash
fzf | xargs ls -laG
搜索文件后用 vim 打开:
vim `fzf`
搜索进程:
bash
ps aux | fzf
搜索 bash 历史命令并拷贝到粘贴板:
Js中文网 – 全球前端挚爱的技术成长平台 www.javascriptC.com
Javascript中文网是以前端进阶资源教程分享为主的专业网站,包括:前端教程、JavaScript资讯、大厂面试题、typescript教程、程序人生、React.js源码解读、Vue3.js技术揭秘等,以帮助开发者成长为愿景的社区
history | fzf | sed -E "s/[[:space:]]*[[:digit:]]+[[:space:]]*//g" | pbcopy
搜索语法
这里粘贴一下 fzf 文档中的搜索语法,请配合使用。
Token
Match type
Description
sbtrkt
fuzzy-match
Items that match sbtrkt
'wild
exact-match (quoted)
Items that include wild
^music
prefix-exact-match
Items that start with music
.mp3$
suffix-exact-match
Items that end with .mp3
!fire
inverse-exact-match
Items that do not include fire
!^music
inverse-prefix-exact-match
Items that do not start with music
!.mp3$
inverse-suffix-exact-match
Items that do not end with .mp3
如果想要知道更多的 fzf 选项,可以运行 man fzf
获取详细信息。(比如 -m 命令代表多选)
小结
Anyway,本文介绍的 fzf 对于终端重度用户来说,应该也算是眼前一亮的命令了。同时,它在 Github 上也有 32k+ 的 star,怎么说也值得大家花点心思研究研究。
作者:苏里
链接:https://juejin.im/post/6886469309648879623
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com