如何在Visual Studio Code中创建多个光标

845

在 VS Code 中创建多个光标的键盘快捷键是什么?


184
只需按住“Alt”键,然后在不同的位置开始单击即可。就是这样。 - username
96
CMD+Alt+Down箭头是您想要的操作。 https://dev59.com/Yl0a5IYBdhLWcg3wsKi2 - Valentine Bondar
7
如果您正在使用 Mac,自 1.14.2 起,您实际上需要使用 SHIFT+CTRL+DOWN/UP。 - Ben Creasy
2
此外,根据1.14.2版本的默认设置,似乎Cmd+Alt+Down被映射为editor.action.goToDeclaration。 - Ben Creasy
3
如果你使用的是Mint系统,你可以通过禁用Alt+单击来实现。具体方法是进入“系统设置”-“窗口”-“行为”,然后更改“移动和调整窗口的特殊键”。 - ncesar
显示剩余7条评论
24个回答

843

按下Alt并单击。这适用于Windows和Linux*,在Mac上也应该适用。

Visual Studio Code 0.2现在提供了更多的多光标功能:

多光标改进
Ctrl+D(在Mac上为Cmd+D)选择光标下单词或当前选择的下一个出现位置
Ctrl+K Ctrl+D将最后添加的光标移动到光标下单词或当前选择的下一个出现位置
这些命令默认使用matchCase。如果查找小部件已打开,则会使用查找小部件设置(matchCase/matchWholeWord)确定下一个出现位置
Ctrl+U(在Mac上为Cmd+U)撤消最后一个光标操作,因此如果您添加了一个额外的光标或犯了一个错误,可以按Ctrl+U(在Mac上为Cmd+U)返回到以前的光标状态。 添加向上或向下的光标(Ctrl+Alt+Up/Ctrl+Alt+Down)(在Mac上为Cmd+Alt+Up/Cmd+Alt+Down)现在会显示最后添加的光标,以便更轻松地在超过1个视口高度的多个光标上工作(例如选择300行,但视口只能容纳80行)。

这使得引入多个光标变得更加容易

* Linux拖动窗口冲突:

一些发行版(例如Ubuntu)将窗口拖动分配给Alt+左键单击,这将与VSCode产生冲突。

因此,最近的VSCode版本允许您在选择菜单下在Alt+左键单击Ctrl+左键单击之间切换,详见另一个答案

另外,您可以使用 gsettings 更改操作系统键绑定,如 另一个答案 所述。


13
F2或Ctrl+F2可以帮助。但是我还没有找到类似于Ctrl+D的东西。 - vilicvane
18
Alt+click 在 Linux 上似乎无效。对我有用的是 Ctrl+shift+left/right/up/down。 - Yonatan Simson
23
在Mac电脑上,按住"alt"和"shift"键,然后点击鼠标左键。 - Hoff
7
嗯,我按Ctrl+Alt+向上或向下箭头时(在Win10系统中),我的屏幕会旋转,而不是出现多个光标。 - Reinsbrain
4
尝试禁用由您的GPU驱动程序提供的热键,可能需要右键单击桌面并查看相关菜单项。 - vilicvane
显示剩余14条评论

269

在VS Code中使用多词(和多行)光标/选择

多词:

Windows / OS X:

  • Ctrl+Shift+L / ⌘+Shift+L 选取当前高亮单词的所有实例。
  • Ctrl+D / ⌘+D 选取下一个实例……以及后面的实例等。

多行:

对于多行选择,Ctrl+Alt+Down / ⌘+Alt+Shift+Down 将扩展您的选择或光标位置到下一行。 Ctrl+Right / ⌘+Right将移动到每行的结尾,无论有多长。要退出多行选择,请按Esc

请参阅VS Code键绑定(适用于不同的操作系统)


36
在我的电脑上,英特尔视频驱动程序有一个热键 Ctrl-Alt-Down 可以让屏幕倒置。这出乎意料 :)_ - Reversed Engineer
6
为什么不同于 SSMS(和可能的 Visual Studio),它使用 Shift-Alt-Down/Up,而不是 Ctrl-Alt-Down? - Reversed Engineer
@DaveBoltman - 我不知道!但是你可以自定义键绑定。 - Dave Everitt
8
要禁用愚蠢的英特尔热键,您只需右键单击桌面> 图形选项> 热键> 禁用。 - alxgb
1
⌘+Shift+L 在我的 Mac 上可以使用,但是由于某些原因 Ctrl+Shift+L 在我的 PC 上无法使用 :(:( - trueToastedCode
1
编辑:应该是Ctrl+F2 - trueToastedCode

187

2017年5月
从1.13版本开始,可以使用Ctrl / Cmd + 点击来添加多个光标。

VSCode开发者引入了一个新设置editor.multiCursorModifier,用于更改在macOS上应用多个光标的修改键为Cmd + 点击,在Windows和Linux上为Ctrl + 点击。这使得来自其他编辑器(如Sublime Text或Atom)的用户可以继续使用他们熟悉的键盘修改键。

该设置可以设置为:

  • ctrl/Cmd - 映射到Windows上的Ctrl和macOS上的Cmd
  • alt - 现有的默认值Alt

还有一个新的菜单项在选择菜单中,使用Ctrl + 点击来快速切换此设置。enter image description here

转到定义打开链接手势也将尊重此设置并适应,以避免冲突。例如,当设置为ctrl/Cmd时,可以使用Ctrl / Cmd + 点击添加多个光标,并可以使用Alt + 点击来打开链接或转到定义。

通过解决问题#2106,现在也可以使用相同的手势在现有选择之上来移除一个光标。


2
我一直在为什么Ctrl+单击不起作用而烦恼。不知道有一个切换选项。 :-) - ankush981
6
editor.multiCursorModifier 的设置从 alt 改为 ctrlCmd 很有效。现在我只需要按下 ctrl + click,就可以使用多个光标了 :) 非常感谢! - protoEvangelion
我可以改为Ctrl +单击,它有效,但是去到类或其他定义的定义消失了,我该如何修复? - Vuong Tran
1
这是最有帮助的答案。在大多数编辑器中,CTRL + 单击用于多选。无需修改操作系统行为即可使编辑器工作。此选项将多选行为修改为最常用的模式。 - Ruby Racer

145

我有ALT键的问题,解决方法是将 alt+click 更改为Gnome热键,这会影响VSCode中的多光标选择,可以通过运行以下命令将其更改为 super+click

gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"   

来源: http://2buntu.com/articles/1529/visual-studio-code-comes-to-linux/


7
+1 这个方法可行!我刚用 Ubuntu 14.04.05 验证了一下。之前我尝试使用 dconf-editorCompizConfig 更改“移动窗口”插件的配置,但把 Ubuntu 弄乱了,差点儿弄坏了。 - Dimitry K
2
这在Ubuntu上可以运行! - jonan.pineda
13
在Linux Mint(Cinnamon)中,使用以下命令来设置鼠标按钮修饰键为“<Super>”:gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "<Super>" - vossad01
2
如果您不想触碰系统默认设置,您也可以使用“选择 > 切换到CTRL + 单击以进行多光标”。这在Linux Mint中有效,因此在Ubuntu中也应该有效。 - lsblsb
1
如果您想在Linux Mint Cinnamon中更改系统设置,也可以转到“系统设置>首选项>窗口>行为”,并更改“移动和调整窗口的特殊键”。 - lsblsb
显示剩余3条评论

112

尝试使用键盘组合Ctrl+Alt+Shift+⬇ / ⬆来切换选项卡,无需使用鼠标。或者按住 "alt" 键单击您想要的所有行。

注意:此方法在Windows系统上测试通过。


37
在我的 Mac 上,使用版本 1.15.1,按下 CMD+OPTION+SHIFT+⬇ / ⬆ 可以正常工作。 - Tyler Collier
2
在Windows 10上,我可以不使用shift键来完成它。 - Pini Cheyni
3
你也可以使用“Page Up/Down”键来快速滚动页面! - Maxime
没有使用 SHIFT 对我来说不起作用,谢谢。 - BartusZak
1
我安装了Smart Multi-cursor扩展,它具有一些高级功能,使用快捷键Cmd + Alt + (Up / Down)可以创建多光标。 - Danny

60

Cmd+Option+Shift⬇ / ⬆在最新的VSCode 1.29.1和最新的OSX High Sierra 10.13.6,Macbook Pro上适用。

这将在屏幕上添加一个垂直线,就像在Sublime Text中使用Option+单击/垂直拖动一样。

要在文件的任何位置(包括同一行上的多个位置)添加多个光标,只需在想要添加光标的任何位置单击Cmd(或Option),请参见此视频。您也可以搜索重复多次的文本(Cmd+F),然后按Option+Return在每个单词的末尾添加光标。


34

1
Shift+Alt+<arrow> 对我有效。谢谢! - Matt Kneiser
1
这正是我一直在寻找的!Shift+Alt+I非常好用! - myrs

34

在XFCE环境下,前往应用程序 -> 设置 -> 设置编辑器 -> xfwm4 -> easy_click(将其禁用)

现在您可以使用Alt+单击来插入光标

我还在设置 -> 窗口管理器 -> 键盘中禁用了左/右工作区设置 (ctrl + alt + L/R)


1
这里的XFCE是什么? - MartianMartian
2
@Martian2049,它是Unix-like操作系统(Linux、BSD等)上的桌面环境。如果您还不知道这一点,那么我的回答可能对您没有用,请查看其他答案。 - lava-lava
在我禁用了 easy_click 之后,它终于可以工作了,谢谢你救了我的一天。 - Mohamed M. Hagag
它对我有效。我将easy_click中的ALT改为CTRL,因为ALT + 单击是用于移动窗口的。 - millonesj
很好的回复。对我有用 @lava-lava。 - abu abu
这在2023年可行!你帮我省了很多麻烦,谢谢伙计! - Matt Young

31
在Ubuntu中,为了启用多光标点击,您需要首先重新分配Alt +单击,通过运行下面的命令。这是因为默认情况下Ubuntu使用快捷方式本身并且具有优先权。
> gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "<Super>"

18

没有完全符合您要求的绑定。

唯一接近的是Ctrl+F2,它可以同时选择所有内容。

您可以通过以下方式将其绑定到Ctrl+D

  • 单击文件 > 首选项 > 键盘快捷键
    您应该会看到一个充满当前绑定的窗格,并在右侧一个自定义绑定列表
  • 在当前绑定中,搜索Ctrl+F2,复制整行并粘贴到右侧窗格中。
  • 您可能需要删除末尾的逗号,然后更改Ctrl+F2Ctrl+D,然后保存文件。

它应该看起来像这样:

// Place your key bindings in this file to overwrite the defaults
[
{ "key": "ctrl+d",               "command": "editor.action.changeAll",
                                    "when": "editorTextFocus" }
]

我能否像Sublime一样通过按下鼠标滚轮来实现多光标编辑? - Miguel
@Migue 我还没有找到那样做的方法。 - intrepion
当您不想进行搜索和替换时,如果您需要同时编辑数千行,则这是最有效的方法!谢谢! - Link

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