1 unstable release
| 0.0.1 | Aug 5, 2025 |
|---|
#106 in #ls
705KB
1.5K
SLoC
Contains (Mach-o exe, 1.5MB) bin/ls-plus
ls-plus
使用 Rust 编写的增强版 ls 命令,提供现代化功能,支持双包管理系统安装。
功能特性
- 🚀 快速高效 - 使用 Rust 构建,性能卓越
- 🎨 美观输出 - 彩色输出与文件类型指示器
- 📁 多种格式 - 支持不同显示格式(默认、详细、树形、网格、JSON)
- 🔍 智能过滤 - 按文件类型过滤,模式匹配
- 🌳 树形视图 - 层次化目录可视化
- ⚙️ 可配置 - 持久化配置,合理默认值
- 📊 Git 集成 - 显示文件的 git 状态(可选)
- 🎯 搜索功能 - 模式匹配查找文件
- 📦 双包管理 - 同时支持 Cargo 和 npm 安装
安装
Option 1: 通过 npm 安装(推荐)
适合 Node.js 开发者,无需安装 Rust 环境:
# 全局安装
npm install -g @atom/ls-plus
# 使用命令
lsp --help
Option 2: 通过 Cargo 安装
适合 Rust 开发者:
cargo install ls-plus
Option 3: 从源码安装
git clone https://github.com/oppenheimor/ls-plus.git
cd ls-plus
# 方式 1: 使用 npm(自动处理 Rust 构建)
npm install
# 方式 2: 直接使用 Cargo
cargo build --release
环境要求
npm 安装
- Node.js 14+
- 无需 Rust 环境(自动下载预构建二进制)
Cargo 安装
- Rust 1.74 或更新版本
- Git(可选,用于 git 集成功能)
使用方法
基本用法
# npm 安装用户使用 lsp 命令
lsp
# Cargo 安装用户使用 ls-plus 命令
ls-plus
# 列出指定目录
lsp /path/to/directory
ls-plus /path/to/directory
# 显示所有文件(包括隐藏文件)
ls-plus -a
# 详细格式显示
ls-plus -l
# 人类可读的文件大小
ls-plus -h
# 按修改时间排序
ls-plus -t
# 逆序排列
ls-plus -r
# 目录优先显示
ls-plus --directories-first
# 显示文件图标
ls-plus --icons
# 强制开启/关闭颜色
ls-plus --color always
ls-plus --color never
高级功能
# 树形视图
ls-plus tree /path/to/directory
# 限制树形深度
ls-plus tree -d 3 /path/to/directory
# 不同输出格式
ls-plus --format long
ls-plus --format tree
ls-plus --format grid
ls-plus --format json
# 按文件类型过滤
ls-plus --file-type dir # 仅目录
ls-plus --file-type file # 仅文件
ls-plus --file-type image # 仅图像文件
# 搜索文件
ls-plus find 模式 /搜索路径
# Git 集成
ls-plus --git
配置管理
# 显示当前配置
ls-plus config show
# 设置配置值
ls-plus config set display.show_icons true
ls-plus config set display.color_mode always
ls-plus config set behavior.directories_first true
# 重置为默认值
ls-plus config reset
# 编辑配置文件
ls-plus config edit
配置文件
配置文件位置:
- Linux/macOS:
~/.config/ls-plus/config.toml - Windows:
%APPDATA%/ls-plus/config.toml
配置示例
[display]
default_format = "Default"
color_mode = "Auto"
show_icons = false
human_readable_sizes = true
directories_first = true
show_hidden = false
[behavior]
follow_symlinks = false
git_integration = false
max_depth = null
sort_by_time = false
reverse_sort = false
[icons]
enable_icons = false
icon_theme = "default"
[colors]
file_colors = true
size_colors = true
time_colors = true
permission_colors = true
开发
构建
# 调试构建
cargo build
# 发布构建
cargo build --release
# 运行测试
cargo test
# 带日志运行
RUST_LOG=debug cargo run -- /测试路径
测试
# 运行所有测试
cargo test
# 运行特定测试
cargo test test_basic_help
# 运行集成测试
cargo test --test integration_test
代码质量
# 格式化代码
cargo fmt
# 代码检查
cargo clippy
# 安全审计
cargo audit
双包架构说明
本项目采用创新的双包管理架构,同时支持 Rust 和 Node.js 生态:
🦀 Rust 包 (Cargo)
- 包名:
ls-plus - 命令:
ls-plus - 安装:
cargo install ls-plus - 适用: Rust 开发者,系统管理员
📦 Node.js 包 (npm)
- 包名:
@atom/ls-plus - 命令:
lsp - 安装:
npm install -g @atom/ls-plus - 适用: 前端开发者,Node.js 用户
技术实现
- 智能安装脚本: 自动检测环境,优先本地构建,回退到预构建二进制
- 跨平台支持: 自动检测操作系统和架构,下载对应的二进制文件
- 统一功能: 两种安装方式提供完全相同的功能和命令选项
- 开发友好: 开发环境自动构建,生产环境使用预构建二进制
项目结构
src/
├── main.rs # 应用程序入口
├── cli.rs # 命令行接口定义
├── config.rs # 配置管理
├── display.rs # 输出格式化和渲染
├── error.rs # 错误类型和处理
├── fs.rs # 文件系统操作
└── git.rs # Git 集成
bin/
└── lsp # npm 包命令行入口
tests/
└── integration_test.rs # 集成测试
package.json # npm 包配置
Cargo.toml # Rust 包配置
install.js # npm 智能安装脚本
index.js # npm 包主入口
贡献
- Fork 仓库
- 创建功能分支
- 进行修改
- 为新功能添加测试
- 运行测试套件
- 提交 Pull Request
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
路线图
- 自定义格式化器插件系统
- 云存储提供商集成
- 正则表达式高级搜索
- 性能基准测试工具
- Shell 自动补全脚本
- Man 页面生成
- Windows 特定优化
- 多语言支持
Dependencies
~7–21MB
~222K SLoC