# 《Crush 从入门到精通》第三、四章:交互界面与核心功能
## 第三章:交互界面
### TUI 基本操作
```
┌─────────────────────────────────────────────────────────────┐
│ Crush - Your new coding bestie [Model: GPT-4o]│
├─────────────────────────────────────────────────────────────┤
│ │
│ 🤖 │
│ 你好!我是 Crush,你的终端编程助手。 │
│ 我可以帮你: │
│ • 编写和修改代码 │
│ • 搜索和分析文件 │
│ • 执行终端命令 │
│ • 解答技术问题 │
│ │
└─────────────────────────────────────────────────────────────┘
```
### 快捷键列表
| 快捷键 | 功能 |
|--------|------|
| `Enter` | 发送消息 |
| `Ctrl+C` | 取消当前操作 |
| `Ctrl+L` | 清屏 |
| `Ctrl+S` | 保存会话 |
| `Tab` | 自动补全 |
| `↑/↓` | 历史消息导航 |
| `Ctrl+P` | 切换模型 |
| `Ctrl+T` | 新建会话 |
---
## 会话管理
### 会话概念
Crush 使用会话(Session)来管理对话上下文:
```
Session 结构
├── ID: 唯一标识符 (如 "sess_abc123")
├── Title: 会话标题
├── MessageCount: 消息数量
├── PromptTokens: 消耗的输入 token
├── CompletionTokens: 消耗的输出 token
└── Cost: 预估费用
```
### 会话操作
```bash
# 列出所有会话
> /sessions list
# 创建新会话
> /session new "新项目分析"
# 切换会话
> /session switch sess_abc123
# 删除会话
> /session delete sess_xyz789
```
---
## 第四章:核心功能使用
### 代码编辑与查看
#### 读取文件
```bash
# 读取单个文件
crush> 读取 src/main.go 文件
# 读取多个文件
crush> 对比 config/app.yaml 和 config/prod.yaml 的区别
```
#### 写入文件
```bash
# 创建新文件
crush> 创建一个 config.yaml 文件,内容如下:
```yaml
server:
port: 8080
host: localhost
```
```
#### 编辑文件
```bash
# 精确替换
crush> 将 src/index.ts 中的 "console.log" 替换为 "console.log"
# 批量替换
crush> 将所有 var 改为 let
```
---
### 文件搜索与替换
```bash
# 按名称搜索
crush> 找到所有 *test*.go 文件
# 按内容搜索
crush> 在 src/ 目录下搜索 "TODO" 注释
```
---
### 命令执行
```bash
# 执行简单命令
crush> 运行 npm run build
# 解释命令
crush> 解释这个命令的作用:
find . -name "*.go" -not -path "./vendor/*"
```
---
### 网络获取
```bash
# GET 请求
crush> 请求 https://api.github.com/users/octocat
# 网页抓取
crush> 获取 https://golang.org/pkg/ 的内容
# 网络搜索
crush> 搜索 Go 语言 1.25 的新特性
```
---
*本文是《Crush 从入门到精通》系列文章的第一部分完结*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!