> ## Documentation Index
> Fetch the complete documentation index at: https://openidea.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# 终端

> 使用内置终端：标签页、拆分、Shell、链接、查找以及终端设置。

**终端** 工具窗口在 IDE 里运行你的 Shell。每个标签页都是一个真正的伪终端会话，界面基于 xterm.js。在远程项目中，Shell 运行在远程机器上。

## 打开终端

| 操作 | macOS | Windows/Linux |
| - | - | - |
| 显示或隐藏终端工具窗口 | `⌥F12` | `Alt+F12` |
| 新建终端标签页（焦点在终端时） | `⌘T` | `Ctrl+Shift+T` |

打开空的终端窗口时，会在起始目录（默认是项目根目录）新建一个标签页。要在某个文件夹打开终端，可以在项目工具窗口中右键该文件夹，选择 **打开方式 › 终端**，或运行 **在终端中打开**。

## 标签页与拆分

* **+**（**新建标签页**）用默认 Shell 打开一个标签页。
* **▾** 按钮（**更多终端选项**）包含 **新建终端标签页**、**新建预定义会话**（每个已安装的 Shell 一项，另有 **SSH 会话…**）、**向右拆分**、**向下拆分** 和 **设置**。
* 右键标签页可以 **重命名会话…**、**关闭标签页**、**关闭其他标签页**、**向右拆分**、**向右拆分并移动**、**向下拆分**、**向下拆分并移动**、**取消拆分**。双击标签页也能重命名。
* 拖动标签页可以调整顺序，拖到另一组的边缘则会拆分。

标签页名称优先用你设置的名字，其次是 Shell 报告的正在运行的程序名，否则就是 `本地`、`本地 (2)` 等默认名称。命令运行时标签上会显示转圈图标，会话结束后显示 **已退出** 或 **失败**。

会话进程退出后，终端会打印退出码，按 `Enter` 可以重启。**会话结束时关闭** 开启时（默认），标签页会直接关闭。关闭仍在运行程序的标签页时会要求确认。

### 重启 IDE 之后

OpenIDEA 会按项目记住终端标签页：各自的目录、自定义名称、使用的 Shell 以及拆分布局（最多 32 个标签页）。重启后每个标签页都会在原目录**重新**启动一个会话，不会恢复滚动缓冲区和正在运行的命令。

## 终端中的按键

| 操作 | macOS | Windows/Linux |
| - | - | - |
| 复制选中内容 | `⌘C` | `Ctrl+Shift+C`，有选区时也可用 `Ctrl+C` |
| 粘贴 | `⌘V` | `Ctrl+Shift+V` |
| 在终端中查找 | `⌘F` | **在终端中查找** 操作（无默认快捷键） |
| 清除缓冲区 | `⌘K` | **清除终端缓冲区** 操作（无默认快捷键） |
| 关闭会话 | `⌘W` | **关闭终端会话** 操作（无默认快捷键） |
| 行首 / 行尾 | `⌘←` / `⌘→` | 由 Shell 决定 |
| 按词左移 / 右移 | `⌥←` / `⌥→` | 由 Shell 决定 |
| 删除一个词 / 整行 | `⌥⌫` / `⌘⌫` | 由 Shell 决定 |

其他 `Ctrl` 组合键都交给 Shell。`Shift+Enter` 发送 `Esc` + `Return`，Claude Code 等 TUI 程序会把它当作换行。`Esc` 先清除选区，没有选区时才发给 Shell。

**覆盖 IDE 快捷键** 开启时（默认），终端把大多数按键留给 Shell，只有少量 IDE 快捷键仍然生效：工具窗口快捷键、查找操作、转到文件/类/符号、设置、推送、最近的文件、切换器以及终端自身的操作。可以在设置页点击 **配置终端快捷键** 查看。

终端区域的右键菜单有 **复制**、**粘贴**、**全选**、**清除缓冲区**、**向右拆分**、**向下拆分** 和 **关闭会话**（进程退出后还有 **重启会话**）。

## 查找

`⌘F`（或 **在终端中查找**）在滚动缓冲区（10,000 行）上方打开查找栏。可以切换 **区分大小写**（`Alt+C`）、**单词**（`Alt+W`）和 **正则表达式**（`Alt+X`）；`Enter` / `Shift+Enter` 在匹配项之间跳转，`Esc` 关闭。

## 链接、路径与拖放

* `http`、`https` 和 `file` 链接在浏览器中打开，程序输出的 OSC 8 超链接同样可用。
* `src/main.rs:42:7`、`Main.java(42,7)` 这类文件位置会在编辑器中打开并定位到该行。路径先按 Shell 的当前目录解析，找不到时再在整个项目中按文件名查找。
* 粘贴复制的文件时，会粘贴按当前 Shell（bash/zsh/fish、PowerShell 或 cmd）规则加好引号的路径。粘贴剪贴板中的图片时，会先保存为文件，再粘贴该文件的路径。
* 从文件管理器把文件拖到终端，会在提示符处输入加了引号的路径，但不会执行。

在设置中关闭 **高亮超链接** 可以停用链接识别。

## Shell 与环境

默认 Shell：

* **macOS/Linux**：你的登录 Shell（先读用户数据库，再读 `$SHELL`），找不到时依次尝试 `/bin/zsh`、`/bin/bash`、`/bin/sh`。zsh、bash、sh、fish、ksh、dash、tcsh 和 csh 以登录 Shell 方式启动。
* **Windows**：依次尝试 `pwsh.exe`、`powershell.exe`、`%COMSPEC%`、`cmd.exe`。

**新建预定义会话** 还会列出找到的其他 Shell：macOS/Linux 上的 zsh、bash、fish、nu、pwsh；Windows 上的 PowerShell、cmd、WSL 和 Git Bash。

每个会话都会设置 `TERM=xterm-256color`、`COLORTERM=truecolor`、`TERM_PROGRAM=OpenIDEA` 和 `TERM_PROGRAM_VERSION`；没有 `LANG` 时还会设置 `LANG=en_US.UTF-8`。设置中配置的环境变量会叠加在这些之上。

**Shell 集成** 开启时，zsh、bash 和 fish 会把当前目录以及命令的开始/结束告诉 IDE。这样链接和新拆分的窗格能用正确的目录，标签页标题也能跟随正在运行的程序。

## 设置

**设置 › 工具 › 终端**：

| 设置 | 默认值 | 说明 |
| - | - | - |
| **起始目录** | 项目根目录 | 相对路径按项目根目录解析。**在终端中打开** 仍会打开所选文件夹。项目级设置。 |
| **环境变量** | 无 | 添加到新会话的环境中。项目级设置。 |
| **Shell 路径** | 登录 Shell | 一条命令行，例如 `/bin/zsh --login`。**已安装的 Shell** 列出找到的 Shell。 |
| **默认标签页名称** | `Local` | |
| **响铃** | 开 | |
| **会话结束时关闭** | 开 | |
| **鼠标报告** | 开 | 关闭后程序无法捕获鼠标。 |
| **选择时复制到剪贴板** | 关 | |
| **点击鼠标中键时粘贴** | 开 | |
| **按 Escape 将焦点移到编辑器** | 关 | 关闭时 `Esc` 发给 Shell。 |
| **覆盖 IDE 快捷键** | 开 | 见上文。 |
| **Shell 集成** | 开 | |
| **高亮超链接** | 开 | |
| **将 Option 用作 Meta 键** | 关 | 仅 macOS。 |
| **光标形状** | 块 | 块、下划线或竖线。 |
| **闪烁光标** | 开 | |
| **使用编辑器字体** | 开 | 关闭后可设置 **字体**、**大小**（6–72）、**行高**、**备用字体** 和 **列宽**。 |

修改会立即应用到已打开的会话。配色跟随 IDE 主题。

## 相关功能

* **工具 › 启动 SSH 会话…** 会用已保存的 SSH 配置在终端标签页中建立 SSH 连接，见 [SSH](https://openidea.sh/zh/guide/remote/ssh.md)。
* Docker 容器可以通过 **创建终端** 在终端标签页中打开 Shell，见 [Docker 与服务](https://openidea.sh/zh/guide/services.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.