AI 编程教程中文版
官方教程中文版CLI 与自动化

终端设置

基于 Cursor 官方 Terminal Setup 文档解释多行输入、Shift+Enter、Ctrl+J、tmux、Vim mode、主题检测和手动 keybinding 配置。

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

阅读目标:读完本章,你应该能解决 Shift+Enter 不换行、tmux 里快捷键失效、Vim mode 开关和主题颜色异常。

1. 先处理多行输入

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

/setup-terminal

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

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

Method说明
\\ + Enter输入反斜杠,再按 Enter 插入换行
Ctrl+JASCII 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。

/vim

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

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

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

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

常用模式:

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

Esc 从 Insert 回到 Normal。iaIAoO 进入不同插入位置。

4. Vim 常用键

导航:

Key作用
h / l左 / 右
j / k下 / 上
w / b下一个 / 上一个 word
eword 末尾
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 强制主题:

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

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

6. tmux 设置

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

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:

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

Kitty:

map alt+enter send_text all \x1b\r

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

8. 排障顺序

快捷键不工作:

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

SSH 中不工作:

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

颜色异常:

  • 检查 TERM
  • 检查 true color。
  • tmux 用户补 .tmux.conf
  • 必要时设置 COLORFGBG
深读:为什么 Ctrl+J 是最值得记的快捷键

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

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

本章自检

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

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

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

官方来源

接下来去哪

本页目录