🎯 主要功能: - 智能检测系统中已安装的现代化命令行工具 - 支持 44 种默认命令映射 (ls→eza, cat→bat, find→fd 等) - 灵活的环境变量配置系统 - AI 提示词集成,优先推荐现代化工具 - 完整的配置状态显示 ⚙️ 配置方式: - 环境变量: AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat" - .env 文件配置支持 - 动态配置检测和合并 🔧 技术实现: - 新增 get_modern_commands() 配置管理 - 新增 get_available_modern_commands() 系统检测 - 新增 generate_modern_commands_prompt() 提示词生成 - 更新 AI agent 系统提示词 - 完善配置显示和测试脚本 📊 支持的现代化工具: 文件操作: eza, bat, fd, tree 文本处理: rg, sd, choose, delta 系统监控: procs, htop, ncdu, duf 网络工具: gping, httpie, aria2c 编辑器: nvim, micro 其他: zoxide, trash, ouch, pnpm
4.3 KiB
4.3 KiB
现代化命令替代功能说明
🎯 功能概述
AI Shell v0.2.0 新增了现代化命令替代功能,可以让 AI 优先推荐更现代、更高效的命令行工具,提升用户体验和工作效率。
✨ 主要特性
- 🔧 智能检测: 自动检测系统中已安装的现代化工具
- ⚙️ 灵活配置: 支持自定义命令替代映射
- 🎯 AI 优化: 将现代化命令偏好集成到 AI 提示词中
- 📊 状态显示: 通过
ai --config
查看当前配置状态 - 🔄 动态更新: 支持环境变量实时配置
📋 默认支持的现代化工具
文件操作
ls
→eza
- 现代化的 ls 替代品,支持图标和颜色cat
→bat
- 带语法高亮的 catfind
→fd
- 更快更友好的 findtree
→tree
- 保持原样(已经很现代)
文本处理
grep
→rg
(ripgrep) - 更快的文本搜索sed
→sd
- 更简单的 sed 替代awk
→choose
- 人性化的 awk 替代cut
→choose
- cut 的替代diff
→delta
- 带语法高亮的 diffless
/more
→bat
- 用于分页显示
系统监控
ps
→procs
- 现代化的进程查看器top
→htop
- 交互式进程监控du
→ncdu
- 交互式磁盘使用分析df
→duf
- 更好的磁盘空间显示
网络工具
ping
→gping
- 带图形的 pingcurl
→httpie
- 更友好的 HTTP 客户端wget
→aria2c
- 多连接下载器
编辑器
vim
→nvim
- 现代化的 vimnano
→micro
- 现代化的 nano 替代
其他工具
cd
→zoxide
- 智能目录跳转rm
→trash
- 安全删除(移到回收站)tar
/zip
/unzip
→ouch
- 通用压缩工具npm
/yarn
→pnpm
- 更快的包管理器
⚙️ 配置方法
1. 查看当前配置
ai --config
2. 使用环境变量配置
# 设置自定义替代
export AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat,find:fd,grep:rg"
# 查看效果
ai --config
3. 在 .env 文件中配置
编辑 .env
文件:
# 现代化命令替代配置
AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat,find:fd,grep:rg,du:ncdu"
4. 配置格式说明
# 格式: "旧命令:新命令,旧命令2:新命令2"
AI_SHELL_MODERN_COMMANDS="old1:new1,old2:new2,old3:new3"
# 示例
AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat,find:fd"
🔍 工作原理
- 系统检测: 启动时检测系统中已安装的现代化工具
- 配置合并: 合并默认配置和用户自定义配置
- 提示词生成: 将可用的现代化命令添加到 AI 提示词中
- AI 优化: AI 在生成命令时优先考虑现代化替代
📊 配置示例
基础配置
export AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat"
完整配置
export AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat,find:fd,grep:rg,du:ncdu,df:duf,ps:procs,top:htop,ping:gping,vim:nvim"
开发者配置
export AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat,find:fd,grep:rg,npm:pnpm,yarn:pnpm,curl:httpie"
🧪 测试功能
1. 测试脚本
# 运行测试脚本
uv run python scripts/test_modern_commands.py
2. 实际使用测试
# 设置配置
export AI_SHELL_MODERN_COMMANDS="ls:eza,find:fd"
# 测试命令生成
ai "列出当前目录文件"
ai "查找 Python 文件"
🎯 使用效果
传统命令
# AI 可能生成
ls -la
find . -name "*.py"
现代化命令
# AI 会优先生成
eza -la
fd "*.py"
🔧 故障排除
1. 命令未生效
# 检查配置
ai --config
# 确认环境变量
echo $AI_SHELL_MODERN_COMMANDS
2. 工具未安装
# 检查工具是否安装
which eza
which bat
which fd
3. 配置格式错误
# 正确格式
AI_SHELL_MODERN_COMMANDS="ls:eza,cat:bat"
# 错误格式
AI_SHELL_MODERN_COMMANDS="ls=eza;cat=bat" # 错误
📈 版本历史
- v0.2.0: 新增现代化命令替代功能
- 支持 44 种默认命令映射
- 自动系统检测
- 环境变量配置
- AI 提示词集成
🚀 未来计划
- 支持配置文件管理
- 添加更多现代化工具
- 工具安装建议
- 性能基准测试
- 社区配置分享
💡 提示: 这个功能让 AI 更倾向于推荐现代化、高效的命令行工具,提升您的命令行体验!