多个光标和选择作用域
在 PyCharm 编辑器中输入、复制或粘贴时,您可以切换多个光标,以便您的操作可同时应用于多个位置。 高级编辑操作,例如 代码补全 和 实时模板 也受支持,并将应用于每个插入符。
您可以在文件中添加的文本光标数量限制为 1000。 如果您想增加该限制,请打开 custom JVM options 并添加以下行: -Deditor.max.caret.count=<NEW_LIMIT>。
最新添加的文本光标被视为 primary。 当前编辑器行的高亮,自动完成列表和其他视觉辅助功能将应用于主插入点。 关闭多重文本光标后,该文本光标将保留。
添加和删除插入点
在代码行上可以添加文本光标的两个选项:
给现有角色 | 使用虚拟空格 |
|---|---|
如果在您想添加新文本光标的位置没有字符、制表符或空格,新文本光标将被添加到目标行的最后一个字符位置。 | 通过这种方式,您可以在任何行的最后一个字符之后的任意位置添加新插入符。 一旦您开始在行尾以外的位置输入字符,必要数量的空格将会在行尾和您的输入起始位置之间添加。 您可以通过在 允许文本光标放置在行末后 设置页面  编辑器 | 常规 上选择复选框 Ctrl+Alt+S 来启用虚拟空格。 或者, 列选择模式中也启用了虚拟空格。 |
使用鼠标在选定位置添加或移除文本光标
在目标位置 Alt+Shift+Click 添加另一个文本光标。
在其中一个多个文本光标处 Alt+Shift+Click 以将其删除。 最后一个文本光标将不会被移除。
使用键盘在当前文本光标的上方或下方添加文本光标
请按 Ctrl 两次,然后在不松开的情况下按上下箭头键。
如果启用了 virtual spaces ,新的文本光标将会精确地添加在当前文本光标位置的上方或下方。 否则,在长度短于当前偏移量的行中,将在行尾添加文本光标。
启用 列选择模式 (按 Alt+Shift+Insert ),然后按 Shift+Up/Shift+Down。
按 Ctrl+Shift+A ,输入 克隆插入符 ,然后从建议列表中选择所需的操作。
在当前文档的每一行添加文本光标
按 Ctrl+Home 将文本光标置于第一行的开头,启用 列选择模式 (按 Alt+Shift+Insert ),然后按 Ctrl+Shift+End。
在选定的块中将文本光标添加到每一行的末尾
在编辑器中选择一个代码块,然后按下 Alt+Shift+G 或转到主菜单中的 。
删除多个文本光标
按 Esc 删除所有现有的文本光标,除了最后添加的那个。
在其中一个多个文本光标处 Alt+Shift+Click 以将其删除。 最后一个文本光标将不会被移除。
选择多个非连续作用域
当您选择多个文本作用域(非连续选择)时,请注意以下几点:
每个选区作用域都与其自身的文本光标关联,因此您可以开始键入以将所有选区作用域替换为您的输入,或者您可以按下 左箭头 或 右箭头 以移除选区作用域,但在作用域的开头/结尾保留多个文本光标。
一旦选择作用域重叠,它们就会合并成一个带有单个文本光标的选择作用域。
选择独立于代码结构。 也就是说,选择作用域可以包括任何字符、标识符、字符串字面量中的单词、注释或它们的部分。 因此,在更改选定作用域时,您必须小心,因为它们可能包括不同的标识符或其部分。
选择多个单词或文本作用域
虽然 Alt+Shift+Click 会添加一个新插入符,但双击单词或在文本作用域上拖动鼠标(保持相同的按键)会添加带有相应选择的新插入符。
选择单词或文本作用域的多个出现位置
如果您想选择单词,请将文本光标放置在所需单词的出现位置。 否则,使用鼠标或 键盘快捷键 选择所需作用域。
请执行以下操作之一:
连续按 Alt+J ,查找并选择下一个区分大小写匹配的单词或文本作用域。
按 Ctrl+Alt+Shift+J 在文档中选择所有大小写敏感的匹配单词或文本作用域。
若要从最后选定的项中移除选择,请按 Alt+Shift+J。
第二次或任何连续的选择添加了 Alt+J 后,您可以跳过它并选择下一个出现的 F3。 要返回到最后跳过的位置,请按 Shift+F3。
查找并选择字符串的多个出现
请按 Ctrl+F 或从主菜单中选择 编辑 | 查找 | 查找。 搜索窗格出现在活动编辑器的顶部。
输入您要查找并选择的字符串。 在搜索字符串的右侧,您将看到当前文档中出现的次数。
您可以选择限制您的搜索条件,按大小写
Alt+C 或仅匹配整个单词
Alt+W。
按 Ctrl+Alt+Shift+J 或点击 选择所有匹配项
在工具栏。
在正常选择模式下使用鼠标选择矩形文本片段
确保 列选择模式 已被 禁用。
要选择一个矩形作用域,请执行以下操作之一:
将文本光标放置在矩形的一个角落,然后 Alt+Shift+Middle-Click 在对角的另一个角落。
Alt+Click 并拖动鼠标进行选择。
要选择多个矩形选择区域, Ctrl+Alt+Shift+Click 并用鼠标拖动所需的代码部分。
因此,您将在每个受影响的文档行中拥有多个选择作用域。 对于短于矩形的行,选择作用域将仅延伸到最后一个字符。
列选择模式
在普通和列选择模式之间切换
按下 Alt+Shift+Insert。
在主菜单中,转到 。
从编辑器的上下文菜单中选择 列选择模式。
在 列选择模式 中,键盘导航和选择快捷键在当前文档中的工作方式不同,以简化添加多个文本光标和进行矩形选择:
您将能够在任何行的最后一个字符之后放置插入符。 一旦您开始在行尾以外的位置输入字符,必要数量的空格将会在行尾和您的输入起始位置之间添加。
按下 Shift+Up/Shift+Down 或拖动鼠标上下将会在当前文本光标的上方/下方添加新的文本光标,而不是进行连续选择。
启用的列选择模式只影响当前编辑器标签页。 如果您关闭或重新打开标签页,它将切换回正常模式。
如果当前文档启用了列选择模式,则 列 指示器会显示在 状态栏上。
使用多个文本光标进行复制和粘贴
当使用多个文本光标选择的文本作用域被复制 Ctrl+C 或剪切 Ctrl+X 时,即使原始选择在同一行,来自每个文本光标的选择也会作为单独的行被放入剪贴板中。
如果 列选择模式已启用,则选择还可以包括行尾的空格。 这些将在您复制选择内容时被替换为空格。
当您从剪贴板粘贴任何多行内容时,您可以在所需位置为每行添加多个文本光标,然后按 Ctrl+V 将每行内容粘贴到其各自的文本光标处。