关于 broot
broot 帮助用户快速导航目录树并预览文件内容。支持模糊搜索、正则表达式过滤、文件预览和快速启动外部命令。
主要功能
- 01用模糊搜索或正则表达式快速定位目录和文件
- 02预览文件内容、目录结构和搜索结果
- 03从导航视图直接启动编辑器或其他命令
- 04列出和筛选特定类型或大小的文件
适用场景
- 01在大型项目中快速找到所需的文件和目录
- 02通过预览确认文件内容后再选择操作
- 03集成到 Shell 配置或脚本中实现快速导航
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行broot --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
Broot
Broot 是一种更好的方式,可用于浏览目录、查找文件和运行命令。

查看目录概览,即使目录很大也没问题
按 br -s

注意到 未列出 的文件了吗?
这正是它易于使用的原因,而旧的 tree 命令会输出好几页内容。
.gitignore 文件会得到妥善处理,让你不必看到不需要的文件。
有时你可能想查看被 Git 忽略的文件或隐藏文件,很快你就会习惯使用 alti 和 alth 快捷键切换这些文件的显示状态。
(当然,你也可以忽略它们,参见文档。)。
查找目录,然后 cd 到该目录
输入几个字母

按 altenter,即可返回终端并位于所需位置。
这样一来,即使你不太记得目录的确切位置,也能用最少的按键导航到该目录。
Broot 速度很快,而且不会阻塞(任何按键都会中断当前搜索并启动下一次搜索)。
最常用的按键:
- 输入要查找内容中的字母
- 在根目录行按 enter,返回上级目录(仍留在 broot 中)
- 按 enter 聚焦目录(仍留在 broot 中)
- 按 esc 返回之前的状态或清除搜索内容
- 可使用 ↓ 和 ↑ 移动选中项
- 按 altenter 返回 Shell,并将
cd切换到选中的目录 - 按 alth 切换隐藏文件的显示状态(名称以点开头的文件)
- 按 alti 切换被 Git 忽略文件的显示状态
- 如果只想退出,请输入
:q(也可以按 ctrlq)
搜索时绝不错过文件层级

Broot 会尝试选中最相关的文件。你仍然可以使用 tab 或方向键在不同匹配项之间切换。
你也可以使用正则表达式搜索。只需在模式前加上 /。
你还可以使用其他类型的搜索,例如搜索文件内容(以 c/ 开头):

你还可以应用逻辑运算符或组合模式。例如,在所有文件中搜索 test,但排除 JSON 文件,可以写成 !/json$/&c/test;在文件名和文件内容中同时搜索 carg,则可以写成 carg|c/carg。
选中所需文件后,你可以:
- 按 enter(或双击)在系统默认程序中打开它
- 按 altenter 在系统默认程序中打开它并关闭 broot
- 按 ctrl→(或 alt→ 在 macOS 上)预览它(再按一次即可进入预览)
- 输入一个动词。例如,
:e会在你首选的编辑器中打开文件(也可以是终端编辑器)
管理文件
通常,不使用 broot 时,你只能盲目移动文件。先运行几次 ls,然后进行操作,之后或许再检查一下。
你可以改用 broot,在操作时始终看清文件层级。

移动、复制、删除、创建目录都是内置功能,你也可以添加自己的快捷方式。
下面是 chmod:

使用面板管理文件
选中一个目录后,按 ctrl→ 即可打开另一个面板(你可以打开更多面板,也可以使用 ctrl← 和 ctrl→ 在面板之间切换)。

(没错,颜色完全可以自定义)
例如,你可以在不同面板之间复制或移动项目:

如果你愿意,可以采用 Norton Commander 风格,将 :copy_to_panel 绑定到 F5,将 :move_to_panel 绑定到 F6。
预览文件
选中文件后按 ctrl→,即可显示预览面板。


预览面板会与树形面板中的选中项保持同步。
当终端支持 Kitty 图形协议时,Broot 会以高分辨率显示图片 (兼容的终端:Kitty、WezTerm):

对文件应用标准命令或个人命令

只需按几下键找到要编辑的文件,输入 :e,然后按 enter。
你可以添加动词或配置现有动词;请参阅文档。
你还可以添加快捷键,例如 ctrl 组合键或功能键
对多个文件执行命令
将文件添加到暂存区,然后对所有文件执行任意命令。

替代 ls(及其各种克隆版本):
如果要显示大小、日期和权限,运行 br -sdp 即可:

你也可以在 broot 中通过几次按键切换选项。
例如,你可以在 broot 中输入 -sdp。
或者按 alth 查看隐藏文件。
排序,查看空间占用:
启动 broot 时,可以使用 --sort-by-size 或 --sort-by-date 排序。也可以在 broot 中输入一个空格,然后输入 sd,再按 enter,即可切换到 :sort_by_date 模式。
排序时会考虑目录的全部内容。因此,如果你想在周一早上找到最近修改的文件,可以运行 br --sort-by-date ~。
启动 broot 时加上 --whale-spotting 选项(或其快捷选项 -w),即可进入专为“寻找大文件”设计的导航模式,轻松找出占用空间较大的文件或文件夹。
大小、日期和文件数量会在后台计算;导航时无需等待。

你仍然可以使用 broot 的所有工具,例如筛选,或删除、打开文件和目录。
输入 :fs,可以查看所有文件系统的使用情况,从而专注于清理空间已满的文件系统。

检查 git 状态:
使用 :gf 可以显示文件状态(哪些是新文件、哪些已修改等)、当前分支名称、领先上游分支的提交数(↑)或落后提交数(↓),以及更改统计信息。
字母表示文件的状态:N 表示未跟踪,A 表示已暂存的新增文件,S 表示已暂存的修改,M 表示工作树中已修改,R 表示已暂存的重命名,C 表示冲突,I 表示已忽略,? 表示其他更改(例如文件被符号链接替换)。

如果你只想查看 git status 命令会显示的文件,请输入 :gs。

然后,你可以轻松编辑、比较差异或还原选中的文件。
延伸阅读
请参阅 Broot 的网站,了解安装和使用说明。