9 releases
Uses new Rust 2024
| 0.2.1 | Jul 16, 2025 |
|---|---|
| 0.2.0 | Jul 14, 2025 |
| 0.1.9 | Jul 14, 2025 |
#384 in Filesystem
431 downloads per month
2MB
3K
SLoC
QuickSwitch
一个基于 Rust 的快速终端文件浏览器,提供美观的文本用户界面(TUI),让你能够快速浏览和选择文件夹。
功能特性
- 🚀 快速导航: 通过直观的 TUI 界面快速浏览文件系统
- 🔍 实时搜索: 支持实时过滤文件和文件夹
- 📁 目录预览: 右侧面板显示选中目录的内容或文件信息
- 📄 文件内容预览: 支持文本文件内容预览(前 100 行),显示行号
- 🔧 Shell 集成: 提供 bash 和 fish shell 函数,实现快速目录切换
- 🎨 美观界面: 使用 ratatui 构建的现代化终端界面
- ⚡ 高性能: 异步处理,响应迅速
- 🌐 跨平台支持: 兼容 Linux、macOS 和 Windows
界面预览
目录预览

文件内容预览

图片预览

安装指南
Release 安装
可以从 GitHub Releases 页面下载最新的二进制文件。
下载后,解压并将可执行文件移动到系统路径中,例如 /usr/local/bin,或者别的 Path 路径中。
并重命名为 quickswitch,Windows 需要保留 .exe 拓展名
测试安装是否成功:
quickswitch.exe --version
Cargo 安装
直接使用 Cargo 安装 quickswitch
cargo install quickswitch
编译安装
1. 克隆项目
git clone https://github.com/luodeb/quickswitch.git
cd quickswitch
2. 编译项目
开发版本
cargo build
发布版本(推荐)
cargo build --release
编译完成后,可执行文件位于:
- 开发版本:
target/debug/quickswitch - 发布版本:
target/release/quickswitch
3. 安装到系统(可选)
# 安装到 ~/.cargo/bin
cargo install --path .
# 或者手动复制到系统路径
sudo cp target/release/quickswitch /usr/local/bin/
使用方法
Shell 函数集成(推荐)
为了实现快速目录切换功能,项目提供了 shell 函数包装器。
Bash/Zsh
将以下函数添加到你的
~/.bashrc或~/.zshrc文件中末尾:eval "$(quickswitch --init bash)"绑定按键(可选/推荐)Ctrl + E:
bind '"\C-e": "qs\n"' # 普通模式 bind '"\C-w": "qshs\n"' # 历史模式重新加载配置:
source ~/.bashrc # 或 source ~/.zshrc
Fish
将以下函数添加到你的
~/.config/fish/config.fish文件中末尾:quickswitch --init fish | source绑定按键(可选/推荐)Ctrl + E:
bind \ce qs # 普通模式 bind \cw qshs # 历史模式重新加载配置:
source ~/.config/fish/config.fish
PowerShell
将以下函数添加到你的 PowerShell 配置文件(
code $profile)中:Invoke-Expression (& { (quickswitch.exe --init powershell | Out-String) })绑定按键(可选/推荐)Ctrl + E:
Import-Module PSReadLine # 绑定 Ctrl+E 快捷键 # 普通模式 Set-PSReadLineKeyHandler -Key 'Ctrl+e' ` -BriefDescription 'RunMyFunction' ` -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine() [Microsoft.PowerShell.PSConsoleReadLine]::Insert("qs") [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine() } # 历史模式 Set-PSReadLineKeyHandler -Key 'Ctrl+w' ` -BriefDescription 'RunMyFunction' ` -ScriptBlock { [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine() [Microsoft.PowerShell.PSConsoleReadLine]::Insert("qshs") [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine() }重新加载配置:
. $profile
快捷键操作
| 快捷键 | 功能 |
|---|---|
↑/↓ j/k |
上下选择文件/文件夹 |
←/→ h/l |
进入父目录/进入选中的目录 |
Enter |
选择当前目录并退出程序 |
Esc |
退出程序 |
/ |
实时搜索过滤 |
v |
切换到历史记录模式 |
Backspace |
删除搜索字符 |
界面说明
┌─ Search files (ESC to quit, Enter to exit & cd, ←→ navigate, ↑↓ select) ─┐
│ your_search_term │
└──────────────────────────────────────────────────────────────────────────┘
┌─ Files - /current/path (filtered/total) ─┐ ┌─ Preview ─────────────────┐
│ 📁 directory1 │ │ 📁 directory1 │
│ 📁 directory2 │ │ 📄 file1.txt │
│ 📄 file1.txt │ │ 📄 file2.md │
│ 📄 file2.md │ │ ... and 5 more items │
└──────────────────────────────────────────┘ └───────────────────────────┘
- 左侧面板: 显示当前目录的文件和文件夹列表
- 右侧面板: 显示选中项的预览
- 对于文件夹:显示其内容列表
- 对于文本文件:显示文件内容(带行号)
- 对于二进制文件:显示文件大小信息
依赖说明
主要依赖库:
ratatui: 现代化的 Rust TUI 库crossterm: 跨平台终端操作库anyhow: 错误处理库tokio: 异步运行时
故障排除
编译问题
-
Rust 版本过旧
# 更新 Rust rustup update -
依赖下载失败
# 清理并重新构建 cargo clean cargo build --release
运行问题
-
程序无法启动
- 确保你在终端环境中运行
- 检查文件权限:
chmod +x target/release/quickswitch
-
界面显示异常
- 确保终端支持 UTF-8
- 尝试调整终端窗口大小
-
Shell 函数不工作
- 确保修改了脚本中的 quickswitch 路径
- 确保重新加载了 shell 配置
- 检查可执行文件权限
开发贡献
欢迎提交 issues 和 pull requests!
开发环境设置
# 克隆项目
git clone https://github.com/luodeb/quickswitch.git
cd quickswitch
# 安装开发依赖
cargo build
# 运行测试
cargo test
# 代码格式化
cargo fmt --all --
# 代码检查
cargo clippy
许可证
本项目采用 [Apache License] 许可证 - 查看 LICENSE 文件了解详情。
Dependencies
~45–78MB
~1M SLoC