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
This commit is contained in:
192
现代化命令替代功能说明.md
Normal file
192
现代化命令替代功能说明.md
Normal file
@ -0,0 +1,192 @@
|
||||
# 现代化命令替代功能说明
|
||||
|
||||
## 🎯 功能概述
|
||||
|
||||
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 更倾向于推荐现代化、高效的命令行工具,提升您的命令行体验!
|
Reference in New Issue
Block a user