Files
ai-shell/现代化命令替代功能说明.md
zackeryyy wang c4d1510ce9 feat: 新增现代化命令替代功能 v0.2.0
🎯 主要功能:
- 智能检测系统中已安装的现代化命令行工具
- 支持 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
2025-07-12 22:32:09 +08:00

4.3 KiB

现代化命令替代功能说明

🎯 功能概述

AI Shell v0.2.0 新增了现代化命令替代功能,可以让 AI 优先推荐更现代、更高效的命令行工具,提升用户体验和工作效率。

主要特性

  • 🔧 智能检测: 自动检测系统中已安装的现代化工具
  • ⚙️ 灵活配置: 支持自定义命令替代映射
  • 🎯 AI 优化: 将现代化命令偏好集成到 AI 提示词中
  • 📊 状态显示: 通过 ai --config 查看当前配置状态
  • 🔄 动态更新: 支持环境变量实时配置

📋 默认支持的现代化工具

文件操作

  • lseza - 现代化的 ls 替代品,支持图标和颜色
  • catbat - 带语法高亮的 cat
  • findfd - 更快更友好的 find
  • treetree - 保持原样(已经很现代)

文本处理

  • greprg (ripgrep) - 更快的文本搜索
  • sedsd - 更简单的 sed 替代
  • awkchoose - 人性化的 awk 替代
  • cutchoose - cut 的替代
  • diffdelta - 带语法高亮的 diff
  • less/morebat - 用于分页显示

系统监控

  • psprocs - 现代化的进程查看器
  • tophtop - 交互式进程监控
  • duncdu - 交互式磁盘使用分析
  • dfduf - 更好的磁盘空间显示

网络工具

  • pinggping - 带图形的 ping
  • curlhttpie - 更友好的 HTTP 客户端
  • wgetaria2c - 多连接下载器

编辑器

  • vimnvim - 现代化的 vim
  • nanomicro - 现代化的 nano 替代

其他工具

  • cdzoxide - 智能目录跳转
  • rmtrash - 安全删除(移到回收站)
  • tar/zip/unzipouch - 通用压缩工具
  • npm/yarnpnpm - 更快的包管理器

⚙️ 配置方法

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"

🔍 工作原理

  1. 系统检测: 启动时检测系统中已安装的现代化工具
  2. 配置合并: 合并默认配置和用户自定义配置
  3. 提示词生成: 将可用的现代化命令添加到 AI 提示词中
  4. 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 更倾向于推荐现代化、高效的命令行工具,提升您的命令行体验!