Visual Studio 中的多选功能?

182

有没有办法在VS中选择多个不相邻(完全分开的)文本?我可以像这样在MS Word中通过按住Ctrl键分别选择文本来实现:

输入图像说明

我的版本是11。

编辑:我不是在谈论 Alt+Select 块选择。同时,我想知道Notepad++中是否存在这样的技巧。


2
你是在问关于Visual Studio 2012还是Notepad++? - Oded
1
@Oded 我认为问题很明显是关于VS的(标题中也包含)。关于Notepad ++的事情只是一个额外的问题。 - nawfal
3
据我所知,这在任何一种情况下都不可能。 - Oded
对于Notepad++:https://dev59.com/MHA75IYBdhLWcg3wJFcL - Malcolm
根据您想要对选择执行的操作,您可以使用正则表达式/字符串搜索来实现最终结果。 - Mansoor
17个回答

296
自Visual Studio 2017更新8版开始,多光标编辑功能已经在Visual Studio原生支持。以下是官方文档的摘录:
  • Ctrl + Alt + 单击:添加第二光标。
  • Ctrl + Alt + 双击:添加第二个单词的选区。
  • Ctrl + Alt + 单击拖动:添加第二个选区。
  • Shift + Alt + .:将下一个匹配的文本作为选区添加。
  • Shift + Alt + ;:将所有匹配的文本作为选区添加。
  • Shift + Alt + ,:取消上次选择的内容。
  • Shift + Alt + /:跳过下一个匹配的内容。
  • Alt + 单击:添加盒状选区。
  • Esc 或 单击:清除所有选区。
其中一些命令也可以在“编辑”菜单中找到:

Multiple Carets Menu


1
我在使用2017版本15.9.3时没有看到这些选项。 - Urasquirrel
在15.9.3中,菜单中的命令似乎只有前两个。 - Gian Marco
3
我想知道他们是否会像JetBrains一样,在多年后推出适当的多插入符支持。尝试添加几个插入符,选择一个单词,然后复制粘贴它。Visual Studio会复制两个(即为每个插入符执行的整个选择重复粘贴)。我想不出什么情况下这会是期望的行为。他们应该只粘贴一次。此外,JetBrains具有CTRL + CTRL快捷键,按下向上或向下箭头时可添加插入符(在按下CTRL时无限制地添加)。与VS的实现相比,它要高效得多。 - obe
我认为组合键太短了,基本的琐碎任务应该要求我们同时按下5个键。 - Max Yari
顺便说一句,如果这个方法对你不起作用的话,你可能需要将键盘热键重置为默认设置。 - Anon
显示剩余4条评论

74

Visual Studio 2017现在有一个名为SelectNextOccurrence的新扩展,该扩展是免费且开源的。

该扩展可使选择后续文字进行编辑成为可能。

旨在复制Sublime Text的Ctrl+D命令,以便更快地进行编码。

特点:

  • 选择当前选择的下一个出现位置。
  • 跳过出现位置
  • 撤消出现位置
  • 在上方/下方添加插入符号
  • 使用多个插入符号进行编辑(按Alt+单击添加插入符号)

Visual Studio命令:

  • SelectNextOccurrence.SelectNextOccurrence默认情况下绑定到Ctrl+D
  • SelectNextOccurrence.SkipOccurrence默认情况下未绑定。(推荐Ctrl+KCtrl+D
  • SelectNextOccurrence.UndoOccurrence默认情况下未绑定。(推荐Ctrl+U
  • SelectNextOccurrence.AddCaretAbove默认情况下未绑定。(推荐Ctrl+Alt+Up
  • SelectNextOccurrence.AddCaretBelow默认情况下未绑定。(推荐Ctrl+Alt+Down

SelectNextOccurrence选项

SelectNextOccurrence是一个针对Visual Studio Code编辑器的扩展程序,它可以帮助开发人员快速选择文本中下一个相同出现的单词或短语。你可以在上面给出的链接找到它的详细信息和下载。

如果你想了解更多关于该扩展程序的信息,可以查看它在GitHub上的源代码。


1
太棒了!就是这个。多选和插入符号都非常好用。在VS Community 2017中测试过。 - Dave
1
@Dave,是的,这个扩展非常棒。如果您觉得它有用,请考虑给它一个好评和/或在GitHub项目上加星。 - Drew Noakes
感谢您发现了这个扩展!MixEdit能够工作,但它并没有针对VS2017进行优化,而且试用版弹出窗口会影响生产力。 - Bill N.
没能起作用。唉,我也不知道我对微软期望了什么。 - Bersan
很好的解决方案,只是需要注意的是,我还必须从“Edit.Duplicate”中删除默认的键绑定,因为即使在为“SelectNextOccurrence”的键绑定添加“Ctrl+D”时,它们仍然会被遵守。VS 2019默认快捷键:https://learn.microsoft.com/en-us/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2019 - Brandon Franklin

55
在Visual Studio中,Shift+Alt+.表示匹配插入符号;Shift+Alt+,表示删除前面的插入符号。在VSCode中,Ctrl+D有相同功能。可以在“工具-选项-环境-键盘”中设置更多选项。在“显示包含命令”的下拉框中输入“编辑”,可以查看与编辑相关的快捷键。此外,可以使用键盘模式Visual Studio Code。该模式适用于Visual Studio 2017。最后,有一个很好的链接可供参考:Visual Studio所有键盘快捷键

1
感谢您的回答,亲切的网络用户。 - Urasquirrel
3
好的回答。我们只需要命令。我不知道为什么每个人都给了这么长的答案,哈哈。谢谢。 - Javi
感谢提示,让我切换到 VS Code 映射... CTRL+D 是我在 VS Code 中最常用的快捷键之一,很高兴能在 VS 中使用它。 - baouss

34
在Visual Studio 2019中,您可以将光标放在正确的位置,然后按下SHIFT、ALT和.(点)键。这将选择下一个出现的实例。

Shift + Alt + . - Mark Davich
1
命令的名称是 Edit.InsertNextMatchingCaret。如果有人想要查找并绑定到不同的键组合,请注意。 - vothaison

23

MixEdit 是 Visual Studio 的扩展程序,可以让你以你所描述的方式进行多重编写。它支持多个插入符号和多个选择。


8
如果您正在寻找类似Sublime Text的软件,那么这正是它! - Kenial
2
如果有人想知道,在MixEdit中实现多选的方法是在按下“Alt”键后双击单词。与MS Word相同,只不过这里使用的是“Alt”键而不是“Ctrl”键。MixEdit还具有许多其他有用的多选选项。请记住,它仅供评估免费使用! - nawfal
3
这个扩展程序不是免费的! - Diogo Cid
2
它很棒,但不是免费的,并且每使用几次就会弹出令人讨厌的对话框。那个对话框甚至不能用Esc键取消,所以必须使用鼠标,这很痛苦。现在支付已经“暂停”,所以实际上无法使用它。 - Sonic Soul
6
有没有免费的替代方案或者可以购买的选择,这样你就不必接受那烦人的提示了?或者如果没有购买选项,能否从MixEdit中将其移除? - Sonic Soul
显示剩余5条评论

20

8

需要注意的是,MixEdit并不是完全免费的。

“此软件目前未授权给任何用户,正在运行评估模式。MIXEDIT可以免费下载和评估,但必须购买许可证才能继续使用。”

安装和使用时,弹出窗口会重定向到网页 - 类似于SublimeText的未经许可的软件弹出消息。


2
现在你甚至不能购买它。它只会弹出一个要求许可证的警告框。 - Sonic Soul

7

针对Visual Studio Code

我来这里的原因是想知道如何在VS Code上通过鼠标点击选择多个单词,应该使用alt+click实现,但是这个快捷键无法使用(我认为这可能与我的操作系统Ubuntu有关)。

对于任何寻找类似功能的人,请尝试将快捷键更改为ctrl+click

前往 Selection > Switch to Ctrl+Click for Multi Cursor


你确定你不是在说 VS Code 吗? - nawfal
是的,我是... 我应该删除它还是只是将其命名为“针对 VS Code”?当我来到这里时,我正在寻找代码。 - jpenna
2
无需删除,对其他人有用。请注意保持流畅、专业、优雅的风格,避免机器翻译的样式。 - nawfal

6
在Visual Studio 2019中,打开选项以显示全部。多选:按住Ctrl + Alt并单击所需位置,或者按住Shift + Alt并单击起始和结束行以选择多行。 查看图像描述

6

我没找到任何内置的功能,这很遗憾。但 CodeRush 中有此功能。

在 Notepad++ 中,这个功能是内置的。只需要从

设置 > 首选项 > 编辑 > 多重编辑设置

打开多重编辑即可。

不过,这不像 MS Word 那样直观,后者可以通过双击两个单词(Ctrl 后)来选择它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接