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

193 lines
4.3 KiB
Markdown

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