---
title: "终端设置"
description: "基于 Cursor 官方 Terminal Setup 文档解释多行输入、Shift+Enter、Ctrl+J、tmux、Vim mode、主题检测和手动 keybinding 配置。"
verifiedAt: "2026-05-09"
---

Cursor CLI 的终端设置重点不是“好不好看”，而是多行输入、快捷键、tmux / SSH 兼容、Vim mode 和主题检测能否稳定工作。

> [!NOTE]
> **阅读目标**：读完本章，你应该能解决 Shift+Enter 不换行、tmux 里快捷键失效、Vim mode 开关和主题颜色异常。

## 1. 先处理多行输入

如果 Shift+Enter 不能插入换行，先在 CLI 会话里运行：

```text
/setup-terminal
```

它会检测当前终端，并指导你配置 Option+Enter 作为替代换行方式。

所有终端都可用的兜底方式：

| Method | 说明 |
| --- | --- |
| `\\` + Enter | 输入反斜杠，再按 Enter 插入换行 |
| Ctrl+J | ASCII line feed，tmux、screen、SSH 中最可靠 |

如果你在 tmux、screen 或远程 SSH 中工作，优先记 Ctrl+J。

## 2. 终端支持矩阵

原生支持 Shift+Enter：

- iTerm2
- Ghostty
- Kitty
- Warp
- Zed integrated terminal

通常需要 `/setup-terminal` 配置 Option+Enter：

- Apple Terminal
- Alacritty
- VS Code integrated terminal

tmux 和 screen 会在 keybinding 到达应用前拦截 Shift+Enter。即使外层 iTerm2 或 Ghostty 支持 Shift+Enter，进入 tmux 后也可能无法透传。这种情况下用 Ctrl+J 或 `\\` + Enter。

## 3. Vim mode

CLI 输入区支持 Vim keybindings。

```text
/vim
```

`/vim` 会切换当前 session 的 Vim mode，并保存偏好。

也可以写进 `~/.cursor/cli-config.json`：

```json
{
  "version": 1,
  "editor": { "vimMode": true },
  "permissions": { "allow": [], "deny": [] }
}
```

Vim mode 只影响 CLI input area。聊天历史和其他 UI 区域仍使用标准 keybindings。

常用模式：

| Mode | 说明 |
| --- | --- |
| Normal | 移动、删除、执行编辑命令 |
| Insert | 正常输入文本 |

Esc 从 Insert 回到 Normal。`i`、`a`、`I`、`A`、`o`、`O` 进入不同插入位置。

## 4. Vim 常用键

导航：

| Key | 作用 |
| --- | --- |
| `h` / `l` | 左 / 右 |
| `j` / `k` | 下 / 上 |
| `w` / `b` | 下一个 / 上一个 word |
| `e` | word 末尾 |
| `0` / `$` | 行首 / 行尾 |

编辑：

| Key | 作用 |
| --- | --- |
| `x` | 删除光标下字符 |
| `X` | 删除光标前字符 |
| `dw` | 删除 word |
| `dd` | 删除整行 |
| `D` | 删除到行尾 |
| `s` | 替换字符并进入 Insert |
| `S` / `cc` | 改整行 |
| `C` | 改到行尾 |

支持 counts，例如 `3w` 前进 3 个 word，`2dd` 删除 2 行。

## 5. 主题检测

Cursor CLI 会查询终端背景色，并自动匹配 light / dark theme。

自动检测表现较好的终端：

- iTerm2
- Ghostty
- Kitty
- Alacritty
- Apple Terminal
- Windows Terminal
- VS Code integrated terminal

如果颜色异常，先检查：

- 终端是否支持 256 colors 或 true color。
- `TERM` 是否正确，例如 `xterm-256color`。
- 是否被 tmux、SSH 或代理 shell 改写环境变量。

可用 `COLORFGBG` 强制主题：

```bash
export COLORFGBG="15;0"  # dark
export COLORFGBG="0;15"  # light
```

要长期生效，把它放进 `.zshrc`、`.bashrc` 或对应 shell profile。

## 6. tmux 设置

tmux 用户可以在 `.tmux.conf` 中启用更好的颜色透传：

```text
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
```

修改后重启 tmux。注意：这解决颜色，不保证 Shift+Enter 透传。多行输入仍建议用 Ctrl+J。

## 7. 手动 keybinding 配置

Option+Enter 需要发送 Escape + carriage return，也就是 `\x1b\r`。

iTerm2：

1. 打开 Preferences。
2. 进入 Profiles。
3. 进入 Keys。
4. 新增 Key Mapping。
5. Keyboard Shortcut 设为 Option+Enter。
6. Action 选 Send Escape Sequence。
7. Escape sequence 填 `\r`。

Alacritty：

```toml
[keyboard]
bindings = [
  { key = "Return", mods = "Alt", chars = "\u001b\r" }
]
```

Kitty：

```text
map alt+enter send_text all \x1b\r
```

VS Code integrated terminal 的 Shift+Enter 可能需要在 `keybindings.json` 中发送 sequence。企业环境中如果 VS Code keybindings 被统一管理，要把这项纳入 dev environment baseline。

## 8. 排障顺序

快捷键不工作：

- 用 `cat` 或 `showkey` 看终端是否真的发出按键序列。
- 检查是否在 tmux / screen 中。
- 使用 Ctrl+J 兜底。
- 再运行 `/setup-terminal`。

SSH 中不工作：

- 远端能力取决于本地 terminal emulator。
- Ctrl+J 最稳。
- `\\` + Enter 也可以作为通用方案。

颜色异常：

- 检查 `TERM`。
- 检查 true color。
- tmux 用户补 `.tmux.conf`。
- 必要时设置 `COLORFGBG`。

<details>
<summary>深读：为什么 Ctrl+J 是最值得记的快捷键</summary>

Shift+Enter 和 Option+Enter 都依赖终端、系统、复用器和远程会话如何传递 modifier key。Ctrl+J 是标准控制字符，穿过 tmux、screen、SSH 的成功率更高。

所以真实工作流里，不要把多行输入只绑定到某个终端的 Shift+Enter。团队 SOP 里应该把 Ctrl+J 写成兜底键。
</details>

## 本章自检

完成本章后，用这 3 个问题检查自己是否真正理解：

1. 为什么 tmux 中 Shift+Enter 经常失效？
2. `/setup-terminal` 主要解决哪个替代换行键？
3. 颜色异常时应该先检查哪些环境条件？

通过标准：你能在 Ghostty、tmux、SSH 和 VS Code terminal 中分别说明最可靠的换行方式。

## 官方来源

- [Cursor Terminal Setup](https://cursor.com/docs/cli/reference/terminal-setup.md) —— 官方多行输入、终端支持、Vim mode、主题检测、手动配置和排障。
- [Cursor CLI Configuration](https://cursor.com/docs/cli/reference/configuration.md) —— 官方 `editor.vimMode` 配置。
- [Using Agent in CLI](https://cursor.com/docs/cli/using.md) —— 官方 CLI 输入快捷键和 review 操作背景。

## 接下来去哪

<Cards>
  <Card title="返回官方教程目录" description="继续按能力域查 Cursor 官方资料。" href="/docs/cursor/official" />
  <Card title="CLI 使用方式" description="回到实际会话、review 和 context 操作。" href="/docs/cursor/official/03-cli-automation/32-cli-using" />
</Cards>
