多光标编辑
VMark 在所见即所得模式和源码模式中均支持强大的多光标编辑,让你可以同时在多个位置进行编辑。
快速开始
| 操作 | 快捷键 |
|---|---|
| 在下一个匹配处添加光标 | Mod + D |
| 跳过匹配,移动到下一个 | Mod + Shift + D |
| 在所有匹配处添加光标 | Mod + Shift + L |
| 撤销上一次添加的光标 | Alt + Mod + Z |
| 在上方添加光标 | Mod + Alt + Up |
| 在下方添加光标 | Mod + Alt + Down |
| 点击添加/移除光标 | Alt + 点击 |
| 收起为单一光标 | Escape |
TIP
Mod = macOS 上的 Cmd,Windows/Linux 上的 Ctrl Alt = macOS 上的 Option
添加光标
选择下一个出现位置(Mod + D)
- 选中一个单词,或将光标放在某个单词上
- 按
Mod + D在下一个出现位置添加光标 - 再次按下以添加更多光标
- 输入内容以同时编辑所有位置
示例:将变量
count 重命名为 total: - 双击
count选中它 - 反复按
Mod + D选中每个出现位置 - 输入
total——所有出现位置同时更新
选择所有出现位置(Mod + Shift + L)
一次性选中当前单词或选区的所有出现位置:
- 选中一个单词或文本
- 按
Mod + Shift + L - 当前块中所有匹配的出现位置都被选中
- 输入内容以一次性替换所有位置
Alt + 点击
按住 Alt(macOS 上为 Option)并点击:
- 添加 一个光标到该位置
- 如果该位置已有光标,则 移除 该光标
这对于在非匹配文本的任意位置放置光标非常有用。
跳过出现位置(Mod + Shift + D)
当 Mod + D 选中了你不需要的匹配时,可以跳过它:
- 按
Mod + D开始添加匹配 - 如果最新的匹配不需要,按
Mod + Shift + D跳过它 - 被跳过的匹配将被移除,并选中下一个匹配
这是多光标版的"查找下一个"——让你可以挑选要编辑的出现位置。
软撤销(Alt + Mod + Z)
撤销上一次添加的光标,而不丢失所有光标:
- 多次按
Mod + D积累光标 - 如果多添加了一个,按
Alt + Mod + Z - 最后添加的光标被移除,恢复到之前的状态
与 Escape(收起所有光标)不同,软撤销每次退回一个光标。
在上方/下方添加光标(Mod + Alt + Up/Down)
垂直添加光标,每次一行:
- 将光标放在某一行
- 按
Mod + Alt + Down在下一行添加光标 - 继续按以向下添加更多光标
- 使用
Mod + Alt + Up向上添加光标
这对于编辑列对齐的文本或在连续行上进行相同编辑非常理想。
使用多光标编辑
拥有多个光标后,所有标准编辑操作都会在每个光标处执行:
输入
- 字符会在所有光标位置插入
- 选区会在所有位置被替换
删除
- Backspace——删除每个光标前的字符
- Delete——删除每个光标后的字符
导航
- 方向键——所有光标一起移动
- Shift + 方向键——在每个光标处扩展选区
- Mod + 方向键——在每个光标处按单词/行跳转
Tab 跳出
Tab 跳出对每个光标独立工作:
- 在 粗体、斜体、
代码或删除线内的光标跳到格式末尾 - 在链接内的光标从链接中跳出
- 在闭合括号
)]}前的光标跳过括号 - 普通文本中的光标保持不动
这让你可以同时从多个格式化区域跳出。详情参见智能 Tab 导航。
剪贴板
复制(Mod + C):
- 复制所有选区的文本,以换行符连接
粘贴(Mod + V):
- 如果剪贴板的行数与光标数相同,每行分别粘贴到对应光标处
- 否则,完整的剪贴板内容粘贴到所有光标处
块级范围
多光标操作 限定在当前块内,以防止意外编辑不相关的区域。
在所见即所得模式中
- 光标无法跨越代码块边界
- 如果主光标在代码块内,新光标也只会在该块内添加
在源码模式中
- 空行作为块级边界
Mod + D和Mod + Shift + L只在当前段落内匹配
为什么要块级范围?
这可以防止意外编辑不相关代码区域中的变量名,或更改恰好匹配的不同段落中的文本。
收起光标
按 Escape 将所有光标收起为主光标位置的单一光标。
视觉反馈
- 主光标——标准闪烁光标
- 次级光标——具有独特样式的额外闪烁光标
- 选区——每个光标的选区都有高亮显示
在深色模式下,光标和选区颜色会自动调整以提高可见性。
模式对比
| 功能 | 所见即所得 | 源码 |
|---|---|---|
Mod + D | ✓ | ✓ |
Mod + Shift + D(跳过) | ✓ | ✓ |
Mod + Shift + L | ✓ | ✓ |
Alt + Mod + Z(软撤销) | ✓ | ✓ |
Mod + Alt + Up/Down | ✓ | ✓ |
Alt + 点击 | ✓ | ✓ |
| 块级范围 | 代码围栏 | 空行 |
| 环绕搜索 | ✓ | ✓ |
技巧与最佳实践
重命名变量
- 双击变量名
Mod + Shift + L选中块内所有出现位置- 输入新名称
添加前缀/后缀
- 将光标放在重复文本的前面/后面
Mod + D在每个出现位置添加光标- 输入前缀或后缀
编辑列表项
- 选中共同的模式(如行首的
-) Mod + Shift + L选中所有- 一次性编辑所有列表项
何时使用各快捷键
| 场景 | 最佳快捷键 |
|---|---|
| 谨慎、逐步选择 | Mod + D |
| 跳过不需要的匹配 | Mod + Shift + D |
| 替换块内所有内容 | Mod + Shift + L |
| 撤销上一个光标步骤 | Alt + Mod + Z |
| 编辑连续行 | Mod + Alt + Up/Down |
| 任意位置 | Alt + 点击 |
| 快速退出 | Escape |
限制
- 原子节点:在所见即所得模式中,无法将光标放入图片、嵌入内容或数学块内部
- 输入法输入:使用输入法(中文、日文等)时,组合输入只影响主光标
- 文档范围:选区限定在块内,而非整个文档
键盘快捷键参考
| 操作 | 快捷键 |
|---|---|
| 选择下一个出现位置 | Mod + D |
| 跳过出现位置 | Mod + Shift + D |
| 选择所有出现位置 | Mod + Shift + L |
| 软撤销光标 | Alt + Mod + Z |
| 在上方添加光标 | Mod + Alt + Up |
| 在下方添加光标 | Mod + Alt + Down |
| 添加/移除光标 | Alt + 点击 |
| 收起为单一光标 | Escape |
| 移动所有光标 | 方向键 |
| 扩展所有选区 | Shift + 方向键 |
| 按单词跳转 | Alt + 方向键 |
| 按行跳转 | Mod + 方向键 |