mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-14 16:07:52 +00:00
144 lines
11 KiB
Plaintext
144 lines
11 KiB
Plaintext
---
|
||
title: "编辑器基础"
|
||
description: "多光标与选区、行编辑、剪贴板历史、代码折叠、格式化、编辑器标签页和拆分编辑器。"
|
||
---
|
||
|
||
编辑器的行为和默认快捷键沿用 IntelliJ IDEA。下文的快捷键在 macOS 上是 **macOS** 键位映射的默认值,在 Windows 和 Linux 上是 **Windows** 键位映射的默认值;任何一个都可以在 **设置 › 按键映射** 中修改(见 [键位映射](/zh/guide/keymap))。所有命令也都能在 **查找操作**(`⇧⌘A` / `Ctrl+Shift+A`)里找到。
|
||
|
||
## 光标与选区
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| -------------------------- | --------- | ------------------ |
|
||
| **添加或移除插入点** | `⌥⇧`+单击 | `Alt+Shift`+单击 |
|
||
| **在上方添加光标** | `⌥⌥↑` | `Ctrl Ctrl+Up` |
|
||
| **在下方添加光标** | `⌥⌥↓` | `Ctrl Ctrl+Down` |
|
||
| **添加下一个匹配项到选区** | `⌃G` | `Alt+J` |
|
||
| **取消选择匹配项** | `⌃⇧G` | `Alt+Shift+J` |
|
||
| **选择所有匹配项** | `⌃⌘G` | `Ctrl+Alt+Shift+J` |
|
||
| **在所选行末尾添加光标** | `⌥⇧G` | `Alt+Shift+G` |
|
||
| **列选择模式** | `⇧⌘8` | `Alt+Shift+Insert` |
|
||
| **扩展选区** | `⌥↑` | `Ctrl+W` |
|
||
| **缩小选区** | `⌥↓` | `Ctrl+Shift+W` |
|
||
|
||
- **在上方 / 下方添加光标**:连按两下修饰键并按住不放,再按方向键。
|
||
- **添加下一个匹配项到选区** 第一次按下时选中光标处的单词,之后每按一次加入下一个匹配。找不到更多时会给出提示,再按一次就从文件开头继续找。
|
||
- 按住 `⌥` / `Alt` 拖动鼠标(macOS 和 Windows 上也可以用鼠标中键拖动)可以直接做矩形选区,不用切换模式。
|
||
- **扩展选区** 依据语法树逐级扩大到所在的单词、表达式、语句和代码块。
|
||
|
||
## 编辑行与代码
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| ----------------------------------- | --------------- | ---------------------------------------------- |
|
||
| **复制行或选区** | `⌘D` | `Ctrl+D` |
|
||
| **删除行** | `⌘⌫` | `Ctrl+Y` |
|
||
| **上移行** / **下移行** | `⌥⇧↑` / `⌥⇧↓` | `Alt+Shift+Up` / `Alt+Shift+Down` |
|
||
| **上移语句** / **下移语句** | `⇧⌘↑` / `⇧⌘↓` | `Ctrl+Shift+Up` / `Ctrl+Shift+Down` |
|
||
| **向左移动元素** / **向右移动元素** | `⌥⇧⌘←` / `⌥⇧⌘→` | `Ctrl+Alt+Shift+Left` / `Ctrl+Alt+Shift+Right` |
|
||
| **使用行注释** | `⌘/` | `Ctrl+/` |
|
||
| **使用块注释** | `⌥⌘/` | `Ctrl+Shift+/` |
|
||
| **合并行** | `⌃⇧J` | `Ctrl+Shift+J` |
|
||
| **切换大小写** | `⇧⌘U` | `Ctrl+Shift+U` |
|
||
| **开始新行** | `⇧↵` | `Shift+Enter` |
|
||
| **在当前行前开始新行** | `⌥⌘↵` | `Ctrl+Alt+Enter` |
|
||
| **拆分行** | `⌘↵` | `Ctrl+Enter` |
|
||
| **补全当前语句** | `⇧⌘↵` | `Ctrl+Shift+Enter` |
|
||
| **解包/移除…** | `⇧⌘⌦` | `Ctrl+Shift+Delete` |
|
||
| **将文本光标移至匹配的大括号** | `⌃M` | `Ctrl+Shift+M` |
|
||
| **将光标移至代码块开头** / **末尾** | `⌥⌘[` / `⌥⌘]` | `Ctrl+[` / `Ctrl+]` |
|
||
| **切换插入/改写** | `Insert` | `Insert` |
|
||
|
||
**编辑 › 对行排序** 和 **编辑 › 反转行** 对选中的行重新排序,默认没有快捷键。
|
||
|
||
输入时括号和引号会自动成对,选中文本后输入引号或括号会把选区包起来。这些以及其他输入辅助(智能 Home、用 Tab 跳出右括号、回车智能缩进、文档注释骨架、退格键如何处理缩进、粘贴时重新格式化)都在 **设置 › 编辑器 › 常规 › 智能键** 中。
|
||
|
||
## 剪贴板
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| ------------------- | ------ | ------------------ |
|
||
| **从历史记录粘贴…** | `⇧⌘V` | `Ctrl+Shift+V` |
|
||
| **粘贴为纯文本** | `⌥⇧⌘V` | `Ctrl+Alt+Shift+V` |
|
||
| **复制引用** | `⌥⇧⌘C` | `Ctrl+Alt+Shift+C` |
|
||
| **复制路径/引用…** | `⇧⌘C` | `Ctrl+Shift+C` |
|
||
|
||
**从历史记录粘贴…** 按时间倒序列出当前窗口最近复制或剪切的 30 段文本。用 `↵` / `Enter` 粘贴选中项,`⌫` / `Delete` 删除选中的条目。历史只保存在内存中,关闭窗口后清空。
|
||
|
||
从编辑器复制时,剪贴板里还会带上富文本(保留语法高亮颜色);不需要的话在 **设置 › 编辑器 › 常规 › 富文本复制** 中关闭。
|
||
|
||
## 代码折叠
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| --------------------------- | ------------------ | ------------------------------- |
|
||
| **折叠** / **展开** | `⌘-` / `⌘=` | `Ctrl+-` / `Ctrl+=` |
|
||
| **全部折叠** / **全部展开** | `⇧⌘-` / `⇧⌘=` | `Ctrl+Shift+-` / `Ctrl+Shift+=` |
|
||
| **递归折叠** / **递归展开** | `⌥⌘-` / `⌥⌘=` | `Ctrl+Alt+-` / `Ctrl+Alt+=` |
|
||
| **展开到级别** 1–5 | `⌘*` 后按 `1`–`5` | `Ctrl+*` 后按 `1`–`5` |
|
||
| **全部展开到级别** 1–5 | `⇧⌘*` 后按 `1`–`5` | `Ctrl+Shift+*` 后按 `1`–`5` |
|
||
| **折叠代码块** | `⇧⌘.` | `Ctrl+Shift+.` |
|
||
| **折叠所选内容/移除区域** | `⌘.` | `Ctrl+.` |
|
||
| **自定义折叠…** | `⌥⌘.` | `Ctrl+Alt+.` |
|
||
|
||
所有折叠命令也在 **代码 › 折叠** 菜单中。可折叠区域来自语言的语法结构和 region 注释;**自定义折叠…** 用来跳转到文件中的自定义区域。打开文件时默认折叠哪些内容(文件头、导入、文档注释)在 **设置 › 编辑器 › 常规 › 代码折叠** 中设置。
|
||
|
||
## 格式化
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| ------------------- | ------ | ------------------ |
|
||
| **重新格式化代码** | `⌥⌘L` | `Ctrl+Alt+L` |
|
||
| **重新格式化文件…** | `⌥⇧⌘L` | `Ctrl+Alt+Shift+L` |
|
||
| **自动缩进行** | `⌃⌥I` | `Ctrl+Alt+I` |
|
||
| **优化导入** | `⌃⌥O` | `Ctrl+Alt+O` |
|
||
|
||
**重新格式化代码** 格式化选区,没有选区时格式化整个文件,整体算一步撤销。格式化由文件的语言服务器或该语言配置的格式化工具完成(例如 Python 用 Ruff,Web 语言用 Prettier 或 oxfmt;在查找操作里搜 **使用 … 重新格式化** 可以指定工具)。**重新格式化文件…** 还能选择范围并顺便优化导入。
|
||
|
||
缩进等代码风格选项在 **设置 › 编辑器 › 代码样式** 中,每种语言一个页面。项目里的 `.editorconfig` 也会生效。
|
||
|
||
想每次保存时自动格式化,在 **设置 › 工具 › 保存时操作** 中勾选 **重新格式化代码**(可同时勾选 **优化导入**)。保存时如何处理行尾空格和末尾换行,在 **设置 › 编辑器 › 常规** 的 **保存文件** 一节中设置。
|
||
|
||
## 标签页
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| -------------------- | ----- | --------------- |
|
||
| **关闭标签页** | `⌘W` | `Ctrl+F4` |
|
||
| **选择下一个标签页** | `⌃→` | `Alt+Right` |
|
||
| **选择上一个标签页** | `⌃←` | `Alt+Left` |
|
||
| **切换器** | `⌃⇥` | `Ctrl+Tab` |
|
||
|
||
**窗口 › 编辑器标签页** 中还有 **固定标签页**、**关闭其他标签页**、**关闭所有标签页** 和 **重新打开已关闭的标签页**,默认都没有快捷键。在查找操作中运行 **将标签页移到新窗口**,可以把当前标签页拆到一个独立窗口。
|
||
|
||
标签页的位置、数量上限以及达到上限后的处理方式、预览标签页、排序方式,以及关闭标签页后激活哪一个,都在 **设置 › 编辑器 › 常规 › 编辑器标签页** 中设置。
|
||
|
||
## 拆分编辑器
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| -------------------- | ----- | --------------- |
|
||
| **向右拆分** | `⌘\` | — |
|
||
| **转到下一个拆分器** | `⌥⇥` | `Alt+Tab` |
|
||
| **转到上一个拆分器** | `⌥⇧⇥` | `Alt+Shift+Tab` |
|
||
|
||
**窗口 › 编辑器标签页** 中还有 **向下拆分**、**取消拆分**、**全部取消拆分**、**移动到另一组**、**在相对组中打开** 和 **更改拆分方向**。也可以把标签页拖到编辑区的某一侧边缘来拆分。
|
||
|
||
## 显示选项
|
||
|
||
| 操作 | macOS | Windows / Linux |
|
||
| -------------- | ----- | --------------- |
|
||
| **增大字体** | `⌥⇧.` | `Alt+Shift+.` |
|
||
| **减小字体** | `⌥⇧,` | `Alt+Shift+,` |
|
||
| **滚动到中央** | `⌃L` | `Ctrl+M` |
|
||
|
||
- **视图 › 活动编辑器 › 软换行** 让当前编辑器的长行自动折行。想让某些文件类型默认软换行,在 **设置 › 编辑器 › 常规** 的 **软换行** 一节中设置。
|
||
- **视图 › 重置所有编辑器中的字体大小** 撤销字体缩放。用 `⌘` / `Ctrl` + 鼠标滚轮调整字号的功能默认关闭,可在 **设置 › 编辑器 › 常规** 的 **鼠标控制** 一节中打开。
|
||
- **视图 › 外观 › 进入无干扰模式** 隐藏工具窗口、标签页、状态栏和装订区域,并让正文居中。再执行一次即可退出。
|
||
- 行号、空白字符、缩进参考线、光标样式和意图灯泡在 **设置 › 编辑器 › 常规 › 外观** 中设置。痕迹导航和粘滞行(滚动时把所在的声明固定在顶部)在 **设置 › 编辑器 › 常规** 下各有单独的页面。
|
||
|
||
## 保存
|
||
|
||
和 IntelliJ IDEA 一样,这里没有逐个文件保存的概念:切换到其他应用或内置终端时文件会自动保存,**文件 › 全部保存**(`⌘S` / `Ctrl+S`)立即保存所有文件。**设置 › 外观与行为 › 系统设置** 的 **自动保存** 一节还可以设置在 IDE 空闲一段时间后保存。
|
||
|
||
在 IDE 之外修改的文件,会在切回 IDE 窗口时同步。**从磁盘重新加载**(`⌥⌘Y` / `Ctrl+Alt+Y`)立即重新加载当前文件。
|
||
|
||
## 相关页面
|
||
|
||
- [代码智能](/zh/guide/code-intelligence):补全、导航和文档。
|
||
- [Live Templates 与宏](/zh/guide/templates)
|
||
- [Vim 模式](/zh/guide/vim)
|