🎯 主要功能: - 智能检测系统中已安装的现代化命令行工具 - 支持 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
193 lines
4.3 KiB
Markdown
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 更倾向于推荐现代化、高效的命令行工具,提升您的命令行体验!
|