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

# 搜索与导航

> 随处搜索，转到文件、类和符号，在文件中查找和替换，最近的文件和位置，书签以及“运行任何内容”。

## 随处搜索

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **随处搜索** | `⇧⇧` | `Shift Shift` |
| **转到类…** | `⌘O` | `Ctrl+N` |
| **转到文件…** | `⇧⌘O` | `Ctrl+Shift+N` |
| **转到符号…** | `⌥⌘O` | `Ctrl+Alt+Shift+N` |
| **查找操作…** | `⇧⌘A` | `Ctrl+Shift+A` |
| **随处搜索文本** | `⌥⇧⌘E` | `Ctrl+Alt+Shift+E` |

连按两下 `Shift` 打开随处搜索。上表的命令打开的是同一个弹窗，只是停在不同的标签页：**全部**、**类**、**文件**、**符号**、**操作** 和 **文本**。按 `⇥` / `Tab` 切到下一个标签页。

* **全部** 按分区显示各类最佳匹配，另外还有 **端点**：Web 框架的 HTTP 路由，可以按请求路径（`/api/users`，前面可以带 `POST` 这样的方法）或控制器和方法名查找。查询为空时列出最近的文件和最近的操作。
* 匹配是模糊的：`usrctl` 能找到 `UserController`。查文件时可以带上行号和列号，例如 `Main.kt:42` 或 `Main.kt:42:5`；也可以直接粘贴绝对路径或 `file://` URL。
* **类**、**文件** 和 **符号** 默认只搜索项目。勾选 **包括非项目项**（或再按一次该标签页的快捷键）可以把依赖库等项目外的文件也包括进来。项目里找不到匹配时，搜索会自动扩大范围。
* 范围菜单可以把结果限定为 **所有位置**、**项目文件**、**项目生产文件** 或 **项目测试文件**。
* **操作** 按名称查找所有命令，包括设置页面和开关；勾选 **包括禁用的操作** 会把当前不可用的命令也列出来。在这里运行命令，和使用它的菜单项或快捷键效果相同。
* `↵` / `Enter` 打开选中项，`⇧↵` / `Shift+Enter` 在侧边拆分窗口中打开。右键单击结果可以复制路径或名称，或在其所在目录中查找。

类和符号来自 IDE 自己的索引（文件一建好索引就能搜到），并与语言服务器的工作区符号合并。

## 转到行与最近的位置

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **转到行:列…** | `⌘L` | `Ctrl+G` |
| **最近的文件** | `⌘E` | `Ctrl+E` |
| **最近的位置** | `⇧⌘E` | `Ctrl+Shift+E` |
| **上一个编辑位置** | `⇧⌘⌫` | `Ctrl+Shift+Backspace` |
| **切换器** | `⌃⇥` | `Ctrl+Tab` |
| **后退** / **前进** | `⌘[` / `⌘]` | `Ctrl+Alt+Left` / `Ctrl+Alt+Right` |
| **跳转到导航栏** | `⌘↑` | `Alt+Home` |
| **选择位置…** | `⌥F1` | `Alt+F1` |

* **最近的文件** 列出最近打开的文件和工具窗口，输入文字可以过滤。
* **最近的位置** 列出你浏览或编辑过的位置，每处都带几行上下文代码。再按一次快捷键（或勾选 **仅显示已更改的**）只看编辑过的位置。
* **切换器** 的用法类似系统的应用切换：按住 `⌃` / `Ctrl`，按 `⇥` / `Tab` 在打开的文件和工具窗口之间移动，松开即切换。
* **选择位置…** 在项目视图或其他工具窗口中定位当前文件。

## 在当前文件中查找和替换

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **查找** | `⌘F` | `Ctrl+F` |
| **替换** | `⌘R` | `Ctrl+R` |
| **查找下一个匹配项** | `⌘G` | `F3` |
| **查找上一个匹配项** | `⇧⌘G` | `Shift+F3` |
| **在查找窗口中打开结果** | `⌥F7` | `Alt+F7` |

编辑器顶部的查找栏提供区分大小写、全字匹配和正则表达式选项，输入时就会高亮匹配。**添加下一个匹配项到选区**（`⌃G` / `Alt+J`）和 **选择所有匹配项**（`⌃⌘G` / `Ctrl+Alt+Shift+J`）可以把匹配项变成多个光标同时编辑。

## 在文件中查找和替换

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **在文件中查找…** | `⇧⌘F` | `Ctrl+Shift+F` |
| **在文件中替换…** | `⇧⌘R` | `Ctrl+Shift+R` |
| **查找** 工具窗口 | `⌘3` | `Alt+3` |

**在文件中查找** 弹窗边输入边搜索，并在列表下方预览选中的匹配。

* **区分大小写**（`⌥C` / `Alt+C`）、**单词**（`⌥W` / `Alt+W`）和 **正则表达式**（`⌥X` / `Alt+X`）控制匹配方式。输入的文本看起来像正则表达式时，弹窗会提示 **使用正则表达式搜索**。
* **文件掩码**（`⌥K` / `Alt+K`）把搜索限定在 `*.ts, *.tsx` 这样的文件名上。
* 搜索上下文菜单可以只匹配 **在注释中**、**在字符串字面量中**，或者 **注释和字符串字面量除外**（以及其他组合）。
* 范围可以是 **在项目**、**模块**、**目录** 或 **作用域**。作用域里有 **项目文件**、**项目生产文件**、**项目测试文件**、**打开的文件**、**最近查看的文件**，以及你的自定义范围（**编辑范围…**）。
* 在搜索框中按 `⌥↓` / `Alt+Down` 显示最近搜索。**固定窗口** 让弹窗在你编辑代码时保持打开。
* **在查找窗口中打开** 把结果移到 **查找** 工具窗口中，按文件（也可按目录）分组，之后可以重新运行搜索。

替换时在第二个输入框中填写替换内容。**保留大小写** 会沿用每个匹配原来的大小写形式。**替换** 替换选中的匹配；**全部替换** 替换所有匹配，涉及多个文件时会先确认。被排除的结果不会替换。

搜索基于 ripgrep 的引擎：跳过 `.gitignore` 排除的目录、`.git` 和二进制文件，并且搜索的是已打开编辑器中尚未保存的内容，而不是磁盘上的版本。

## 书签

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **切换书签** | `F3` | `F11` |
| **使用助记符切换书签** | `⌥F3` | `Ctrl+F11` |
| **显示书签** | `⌘F3` | `Shift+F11` |
| **书签** 工具窗口 | `⌘2` | `Alt+2` |
| 切换编号书签 0–9 | `⌃⇧0`–`⌃⇧9` | `Ctrl+Shift+0`–`Ctrl+Shift+9` |
| 跳转到编号书签 0–9 | `⌃0`–`⌃9` | `Ctrl+0`–`Ctrl+9` |

书签可以标记一行、一个文件或一个文件夹（在项目视图或编辑器标签页的右键菜单中选择 **添加书签**）。行书签可以带一个助记符（数字或字母），显示在装订区域中。**显示书签** 打开带预览的弹窗；**书签** 工具窗口可以把书签分到不同列表并添加描述。**编辑 › 书签** 中还有 **下一个书签** 和 **上一个书签**。

## 运行任何内容

| 操作 | macOS | Windows / Linux |
| - | - | - |
| **运行任何内容…** | `⌃⌃` | `Ctrl Ctrl` |

连按两下 `Ctrl` 打开“运行任何内容”，相当于项目专用的命令行：

* 输入 shell 命令后按 `↵` / `Enter`，在项目目录中运行，输出显示在 **运行** 工具窗口中。
* 输入时会列出匹配的运行配置和构建工具目标（例如 Maven 和 Gradle 任务），`⇥` / `Tab` 补全。
* 输入为空时显示最近运行过的命令，**清除历史记录** 可以清空。

它也在 **运行 › 运行任何内容…** 菜单中。它列出的运行配置见 [运行配置](https://openidea.sh/zh/guide/run.md)。


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