Visual Studio Code中的多个游标


578

在VS Code中进行编辑时,如何创建多个光标?我对macOS和Windows都感兴趣。


114
只需按住Alt按钮,然后开始在其他位置单击即可。而已。
用户名

39
CMD + Alt +向下箭头是您想要的。 stackoverflow.com/questions/30037808/...
情人节Bondar

4
如果您使用的是Mac,从1.14.2开始,SHIFT + CTRL + DOWN / UP是您真正想要的。
Ben Creasy

2
同样,看起来Cmd + Alt + Down由editor.action.goToDeclaration默认映射为1.14.2
Ben Creasy

13
人们决定关闭一个话题,这很可耻,该话题具有明显的吸引力,投票已近400票,张贴后近4年仍然有访问者。我希望SO编辑可以放松一下,让社区成长并互相鼓励。我很好奇2019年的知识会带来什么相关的答案。:(
Mike Williamson

Answers:


579

按下Alt并点击。这适用于Windows和Linux *,也适用于Mac。

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

多光标改进
Ctrl+DCmd+D在Mac上)选择光标下或当前选择
Ctrl+K Ctrl+D下的单词的下一个出现位置将最后添加的光标移动到光标下或当前选择下的下一个单词的出现。
默认情况下,命令使用matchCase。如果查找窗口小部件已打开,则查找窗口小部件设置(matchCase / matchWholeWord)将用于确定下一次出现
Ctrl+UCmd+U在Mac上)会撤消上一个光标操作,因此,如果添加的光标过多或出错,则可以按Ctrl+UCmd+U在Mac上为)返回上一个光标状态。向上或向下添加光标(Ctrl+Alt+Up/ Ctrl+Alt+Down)(Cmd+Alt+Up/Cmd+Alt+Down 在Mac上)现在可以显示最后添加的光标,从而可以更轻松地一次在一个以上视口高度上使用多个光标(即,选择300行,而在视口中只能容纳80条线)。

这使得引入多个游标变得容易得多

* Linux拖动窗口冲突:

一些发行版(例如Ubuntu)将窗口拖动分配给Alt+LeftMouse,这将与VSCode冲突。

因此,最新版本的VSCode可让您在“选择”菜单中的“选择”菜单之间Alt+LeftMouseCtrl+LeftMouse在“选择”菜单下切换,如另一个答案中所述

或者,您可以使用另一个答案中gsettings提到的来更改OS键绑定。


20
键盘快捷键 ?我知道这是命令+单击。但这很糟糕..不是捷径:(
Kiba 2015年

8
F2或Ctrl + F2可能会有所帮助。但是还没有找到Ctrl + D之类的东西。
vilicvane 2015年

13
Alt + click在Linux上似乎不起作用。对我有用的是Ctrl + Shift +向左/向右/向上/向下
Yonatan Simson

18
alt + shift +单击mac(2017)
Hoff

5
hmmm,ctrl + alt +向上或向下旋转屏幕(在win10上),而不是多个光标
Reinsbrain

157

VS Code中的多字(和多行)光标/选择

多字:

Windows / OS X:

  • Ctrl+Shift+L/ ⌘+Shift+L选择当前突出显示的单词的所有实例
  • Ctrl+D/ ⌘+D选择下一个实例...然后选择下一个实例...等等。

多行:

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

请参阅VS代码键绑定(对OS敏感)


15
哈哈在我的机器上,英特尔视频驱动程序具有热键Ctrl-Alt-Down,可以使屏幕上下颠倒。让我措手不及:)_
逆向工程师,

3
为什么与使用Shift-Alt-Down / Up而不是Ctrl-Alt-Down的SSMS(可能是Visual Studio)不同???
逆向工程师,

@DaveBoltman-我不知道!但是您可以自定义按键绑定。
戴夫·埃弗里特

2
Ctrl-Alt-Down使您的屏幕上下颠倒?像有多少用户需要热键一样?🙄
GMAN

3
要禁用愚蠢的Intel热键,您可以右键单击桌面>图形选项>热键>禁用
alxgb

138

我在使用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的05年4月14日证实它..刚才我试着dconf-editorCompizConfig改变“移动窗口”插件的配置和搞砸了和几乎打破我的Ubuntu。
Dimitry K

2
这在Ubuntu中有效!
jonan.pineda

11
使用gsettings set org.cinnamon.desktop.wm.preferences mouse-button-modifier "<Super>"了Linux Mint的(肉桂)。
vossad01

太棒了!适用于Ubuntu 16.04。
布鲁诺·戈麦斯

1
如果您不想触摸系统默认设置,则也可以使用“选择>切换到CTRL +单击多光标”。这可以在Linux Mint中使用,因此也可以在Ubuntu中使用。
lsblsb

125

2017年5月
从1.13版开始,使用Ctrl/ Cmd+ 添加多个游标Click

VSCode开发人员引入了一个新设置,editor.multiCursorModifier以更改用于将多个光标应用于macOS上的+ 和Windows和Linux上的Cmd+ 的修改键。这样,来自其他编辑器(例如Sublime Text或Atom)的用户就可以继续使用他们熟悉的键盘修饰符。ClickCtrlClick

该设置可以设置为:

  • ctrl/Cmd-映射到CtrlWindows和CmdmacOS。
  • alt-现有默认值Alt

还有一个新的菜单项使用Ctrl+ ClickMulti-CursorSelection快速菜单切换此设置。 在此处输入图片说明

转到定义”和“ 打开链接”手势也将遵守此设置并进行调整,以使它们不会冲突。例如,当设置ctrl/Cmd为时,可以使用Ctrl/ Cmd+ 添加多个光标Click,并且可以使用Alt+ 调用打开链接或转到定义Click

通过修复问题#2106,现在还可以通过在现有选择之上使用相同手势来删除光标。


1
我想知道为什么Ctrl + click无法正常工作。不知道有没有切换选项。:-)
ankush981

5
设置editor.multiCursorModifierALTctrlCmd伟大的工作。现在我所要做的就是ctrl +单击,它将使用多个光标:) Muchas gracias!
protoEvangelion

我可以更改为Ctrl +单击,它可以工作,但是要转到类的定义或某些内容消失了,如何解决?
Vuong Tran

这是最有用的答案。在大多数编辑器中,CTRL + click用于多选。无需修改OS行为即可使编辑器正常工作。此选项将多项选择的行为修改为最常用的模式。
Ruby Racer

83

尝试使用Ctrl+ Alt+ Shift+ ⬇ / ⬆(不使用鼠标),或按住“ alt”并单击所需的所有行。

注意:在Windows上测试。


21
CMD+ OPTION+ SHIFT+ ⬇ / ⬆适用于Mac,版本为1.15.1。
泰勒·科利尔

2
在Windows 10上,我无需使用shift
Pini Cheyni,

2
您也可以使用上/下翻页来更快!
Maxime'Apr

没有SHIFT它对我
不起作用

1
我安装了具有某些高级功能的Smart Multi-cursor扩展程序,并使用快捷键Cmd + Alt +(上/下)创建了多光标。
Danny

47

Cmd+ Option+ Shift⬇ / ⬆在最新的VSCode 1.29.1和最新的OSX High Sierra 10.13.6 Macbook Pro上为我工作。

这会在屏幕上向上/向下添加一条垂直线,就像OptionSublime Text中的+ Click / Vertical Drag一样。

在文件的任何点添加多个光标,包括同一行多个光标,请Cmd (or Option)视频中显示的任意位置单击+单击。您也可以搜索Cmd重复多次的文本(+ F),然后按Option+ Return在每个单词的末尾添加光标。


30

Ubuntu上,要启用多光标单击,您需要先运行以下命令来重新分配Alt + click。这是因为默认情况下,Ubuntu会使用快捷方式本身并具有优先权。

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

25

在XFCE上,转到 Applications -> Settings -> Settings editor - > xfwm4 -> easy_click(disable value)

现在,您可以Insert Cursor使用Alt+单击

我还禁用了L / R工作区(ctrl+ alt+ L/R)设置Settings -> Window manager -> Keyboard


1
?? XFCE在这里是什么?
Martian2049 '18

1
@ Martian2049,它是类Unix操作系统(Linux,BSD等)上的桌面环境。如果您还不知道,可能我的答案对您没有用,请检查其他答案。
lava-lava

在为我禁用了easy_click之后,它可以正常工作,谢谢您保存我的一天。
Mohamed M. Hagag

它为我工作。我将easy_click ALT更改为CTRL,因为ALT +单击是用于移动窗口。
millonesj

很好的答复。它对我有用@ lava-lava。
阿布阿布扎比


18

完全没有所需的绑定。

唯一接近的是Ctrl+ F2,它将立即选择所有它们。

您可以将其绑定到Ctrl+,D执行以下操作:

  • 单击“ File > Preferences > Keyboard Shortcuts
    您应该看到一个充满当前绑定的窗格”,然后在右侧看到一个自定义绑定的列表。
  • 在当前绑定中,搜索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" }
]

我可以像升压一样使它成为多光标吗?
Miguel 2015年

@MigueI还没有找到一种方法
intrepion

当您不想搜索和替换时,如果您要同时编辑数千行,这是最有效的方法!谢谢 !
链接

10

Ctrl+ Alt+ ⬇ / ⬆在当前行的上方和下方添加光标。仍然远没有达到崇高或括号的水平。我在键盘快捷键文件中看不到任何与Ctrl+ 等效的东西D


3
对于Mac,它是:Alt + Command和向上或向下箭头。
Leniel Maccaferri

在Ubuntu上,这是Ctrl+Shift+Up/Down
Tobalr

在Windows中,似乎默认为“旋转屏幕”。
BlaM

1
如果旋转屏幕,那是图形驱动程序,而不是Windows。您可以从图形设置中禁用该快捷方式。
丹尼尔

9

https://code.visualstudio.com/更新

新版本(Visual Studio 0.3.0)支持更多的多光标功能。

Multi-cursor
Here's multi-cursor improvements that we've made.

⌘D selects the word at the cursor, or the next occurrence of the current selection.
⌘K ⌘D moves the last added cursor to next occurrence of the current selection.
The two actions pick up the matchCase and matchWholeWord settings of the find widget.
⌘U undoes the last cursor action, so if you added one cursor too many or made a mistake, press ⌘U to return to the previous cursor state.
Insert cursor above (⌥⌘↑) and insert cursor below (⌥⌘↓) now reveals the last added cursor, making it easier to work with multi-cursors spanning more than one screen height (i.e., working with 300 lines while only 80 fit in the screen).

并且将选择多光标的快捷方式更改为cmd + d(与Sublime Text。一样)

我们可以期待下一个版本支持有关多光标的更方便的功能;)




4

在我的XFCE(版本4.12)中,它位于中Settings -> Window Manager Tweaks -> Accessibility

有一个下拉字段Key used to grab and move windows:,请将其设置为None

Alt +单击现在可在VS Code中使用,以添加更多光标。


4

您可以在“选择”菜单上执行以下操作:

VS Code中“选择”菜单的屏幕快照

根据需要按下/按住Alt+Ctrl+Up Arrow/ Alt+Ctrl+Down Arrow 以创建足够的光标,然后Ctrl+D可用于扩展选择。


3

在Ubuntu-MATE上存在相同的问题,但是您可以通过以下方法解决它:

gsettings set org.mate.Marco.general mouse-button-modifier "<Super>"


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.