文章目录
- Rust写的终端文件管理器Joshuto,ranger的异步替代方案
- 键位完全兼容ranger
- 异步IO解决卡顿
- 配置与主题
- 安装覆盖主流平台
- 适用场景
Rust写的终端文件管理器Joshuto,ranger的异步替代方案
终端文件管理器这个品类里,ranger 长期占据主流位置。但它用 Python 写成,单线程架构在处理大量文件时界面容易卡顿。Joshuto 用 Rust 把 ranger 的核心功能重写了一遍,带来了异步文件 IO,响应速度也有提升,目前在 GitHub 上获得了 3697 个 Star。
键位完全兼容ranger
Joshuto 的键位设计直接沿用了 ranger 的 Vim 风格操作。上下翻动用 hjkl 或方向键,翻页用 ctrl+u 和 ctrl+d,gg 跳顶部,G 跳底部。文件操作也是 dd 剪切、yy 复制、pp 粘贴。重命名按 a 在文件名末尾追加,按 A 在开头添加。用过 ranger 的,上手基本没有学习成本。
在此基础上 Joshuto 加入了标签页管理,ctrl+t 新建标签、ctrl+w 关闭标签、Tab 在标签之间切换、backtab 回到上一个标签。隐藏文件用 zh 一键切换显示。输入冒号进入命令模式,等号键切换操作模式。还有目录收藏夹、行号跳转到指定数字、批量重命名等功能。这些在 ranger 里需要配置或安装插件才能实现,Joshuto 直接内置了。
异步IO解决卡顿
Joshuto 的主要改进在于文件 IO 全部异步执行。ranger 在剪切、复制文件时,单线程操作会阻塞界面,文件操作完成前无法继续浏览目录。Joshuto 把文件复制、剪切、粘贴放到后台异步处理,操作提交后可以继续浏览目录、切换标签,不会感受到卡顿。按 w 键调出任务面板,就能查看所有进行中的后台操作。
粘贴时还有几个变体:pp 普通粘贴,po 覆盖粘贴,pl 创建绝对路径符号链接,pL 创建相对路径符号链接。回收站支持也内置了,删除的文件先进入回收站而非直接清除。Ctrl、Shift、Alt 组合键也都得到支持,自定义键位映射的空间很大。
配合 fzf 的模糊搜索和 zoxide 的目录跳转,日常导航效率有明显提升。文件预览功能也覆盖了文本和图片,不过图片预览需要终端配合配置才能开启。
配置与主题
Joshuto 用 TOML 格式管理配置,分五个文件:joshuto.toml 管全局设置,keymap.toml 管按键绑定,mimetype.toml 管文件打开方式(比如用哪个应用打开 PDF、图片),theme.toml 管颜色主题,bookmarks.toml 管收藏夹。TOML 比 ranger 的 Python 配置文件更直观,阅读和修改都方便。主题支持自定义颜色,devicons 图标默认开启,终端里不同文件类型一眼就能区分。
安装覆盖主流平台
安装方式覆盖很广。Rust 用户直接 cargo install 即可,也支持从预编译二进制一键安装,支持指定版本号和自定义安装路径。各发行版的包管理器基本都跟进了:Arch 的 AUR 提供稳定版和 git 版两个选择,Fedora 有 COPR 仓库,Gentoo 的 gentoo-zh 收录了,NixOS 可以用 flake 方式引用或临时运行,MacPorts 和 Homebrew 均支持 macOS 和 Linux 安装。当前没有 Windows 版本,这是项目一个局限。
适用场景
适合日常在终端里管理文件并且习惯 Vim 键位的用户。如果觉得 ranger 响应速度不够,或者想要一个带标签页和异步 IO 的文件管理器,Joshuto 值得尝试。项目仍在开发中,标签页自动补全等功能也在推进,后续版本值得关注。
。项目仍在开发中,标签页自动补全等功能也在推进,后续版本值得关注。