【问题标题】:Multiline editing in Visual Studio CodeVisual Studio Code 中的多行编辑
【发布时间】:2015-07-14 07:00:29
【问题描述】:

是否可以像Sublime Text那样启用多行编辑?

例如,按 Ctrl 可放置额外的光标插入符号,并能够一次在文档中的多个位置写入/删除。

【问题讨论】:

  • 在许多 mac 应用程序(例如 TextEdit)中,我还可以按住 Option 键并拖动鼠标来选择一个框。这在 VS Code 中可用吗?
  • 相关帖子here.
  • 从2018年4月(1.23版)开始,我们可以使用鼠标中键选择多列。 code.visualstudio.com/updates/…
  • 对于在键盘快捷键部分寻找此命令名称的任何人,它是:editor.action.insertCursorAtEndOfEachLineSelected
  • @enzoborgfrantz +1 正是我想要的!选择的答案应该首先提到相关的编辑器命令,因为键绑定可能会有所不同。

标签: visual-studio-code


【解决方案1】:

在任意文本位置添加多个光标

这是通过使用 Ctrl+Click 来完成的。首先你必须启用多光标修改器。只需通过 Ctrl+Shift+PCommand Palette 上键入此选项即可启用它。

从多个文本位置移除光标。

在光标上执行 Ctrl+单击

【讨论】:

    【解决方案2】:

    IMO,最简单的步骤是

    Ctrl + F2

    这对我有用

    【解决方案3】:

    根据用户>常用下的VS Code 1.55.2版本(2021),有一个选项Multi Cursor Modifier。见下图。

    对于多光标,默认键是alt,如果您愿意,可以更改为Ctrl。 此外,对于合适的地方,您可以按住Middle Mouse button向下移动

    【讨论】:

      【解决方案4】:

      在 Windows 上,按住 Ctrl+Alt 的同时按向上 或向下 箭头键添加游标。

      Mac:⌥ Opt+⌘ Cmd+/

      Linux:Shift+Alt+/

      请注意,第三方软件可能会干扰这些快捷方式,使其无法按预期工作(尤其是 Windows 上的英特尔高清显卡软件;有关更多详细信息,请参阅 cmets)。

      如果您遇到此问题,您可以禁用 Intel/其他软件热键,或修改 VS Code 快捷方式(如下所述)。

      Esc 重置为单个光标。

      或者as Isidor Nikolic points out,你可以按住Alt左键任意放置光标。

      您可以通过以下方式查看和编辑键盘快捷键:

      文件 → 首选项 → 键盘快捷键

      文档:

      https://code.visualstudio.com/docs/customization/keybindings

      官方 VS Code 键盘快捷键备忘单:

      https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
      https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
      https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf

      【讨论】:

      • 在 windows 上,第一个选项只是翻转我的屏幕。 :-/
      • 这不再有效。试试CTRL + SHIFT + UP/DOWN/CLICKALT + SHIFT + UP/DOWN/CLICK
      • @Nacimota - 在 Windows 10 机器上(刚刚测试过)组合 CTRL+ALT+ARROW 将翻转屏幕,CTRL+ALT+SHIFT+ARROW 将创建一个新光标。已发布的键盘快捷键 PDF 列表可能已过期。
      • @AlexC 快捷方式没有过时了;下载最新版本并自己查看配置。如果您发现列出的快捷方式正在翻转您的屏幕,我敢打赌这是因为您拥有英特尔 GPU 并且正在为其运行英特尔软件,默认情况下会拦截这些快捷方式。如果您觉得麻烦,请打开 HD Graphics 软件并禁用或重新绑定热键,但不要编辑我的帖子以添加不正确的信息。列出的快捷方式是准确的,我不会列出可能会或可能不会干扰它们的所有第 3 方软件。
      • @Nacimota 恕我直言,这是一个诚实的错误,代表了大部分用户的现实。那里有足够多的英特尔机器,这可能是附加信息有价值的默认配置。我们都有提供最佳最新答案的目标。额外的一句话来列举这种差异会有所帮助。
      【解决方案5】:

      windows 上,您可以按以下方式在下一行/上一行创建额外的光标:

      Ctrl + Alt + Shift +向下/向上

      错过 Shift 会翻转你的屏幕。

      创建额外的光标将允许您一次编辑多行。

      【讨论】:

        【解决方案6】:

        在 Windows 上..

        1. 选择一行您要在各处进行更改。 (用鼠标光标
        2. CTRL + F2,您将立即开始编辑所有行

        【讨论】:

          【解决方案7】:

          我想选择多行并点击“某物”为每个选择行设置一个光标(类似于 Ctrl + Shift + L 在崇高的文本中)。 Visual Studio Code 中的此操作称为“将光标添加到行尾”。

          这是在 Visual Studio Code 1.51.1 中测试的,适用于 WindowsMac

          方法如下:

          1. 选择您想要有多个光标的行。
          2. 只需按 Alt + Shift-I

          现在每个选定行都有一个光标。

          【讨论】:

          • @Manza 在 VS Code 中,你是 ALT-SHIFT-I(比如 i 而不是 L)。字体无助于正确查看。我每天在 Mac 和 Windows 上多次使用此命令,并使用最新版本的 VS Code 再次测试:1.24.1,我向您保证它可以工作。也许你有一个导致冲突的插件?
          • 哇,是的,成功了,非常感谢,因为这个功能,我仍然在崇高之间切换,太方便了
          • 对我来说是 CTRL-SHIFT-L (windows)
          • 这是我要找的,你可以在 vs studio 设置中修改它,寻找“将光标添加到行尾”键绑定。
          【解决方案8】:

          我认为这取决于您的 Visual Studio Code 版本。

          我的是 Linux 版本的 Visual Studio Code 1.7.2。

          { "key": "ctrl+shift+up",         "command": "editor.action.insertCursorAbove",
                                               "when": "editorTextFocus" },
          { "key": "shift+alt+up",          "command": "editor.action.insertCursorAbove",
                                               "when": "editorTextFocus" },
          { "key": "ctrl+shift+down",       "command": "editor.action.insertCursorBelow",
                                               "when": "editorTextFocus" },
          { "key": "shift+alt+down",        "command": "editor.action.insertCursorBelow",
                                               "when": "editorTextFocus" }
          

          关键是所有机器的快捷方式都不相同,所以你应该检查你的配置。进入菜单:

          菜单文件首选项键盘快捷键

          搜索editor.action.insertCursorAboveeditor.action.insertCursorBelow 并查看您当前的配置。如果它们与操作系统的快捷键冲突,您可以更改它们。

          【讨论】:

          • 在 Windows 10 上将 SHIFT + ALT + UP/DOWN 添加到我的用户设置中工作
          【解决方案9】:

          (无鼠标)对于 macOS,我发现这非常快!

          1. CMD + f 搜索您要更改的(单词)。
          2. Option + Enter 选择您搜索的所有单词。

          只需更新第一个单词,它就会更新所有选定的单词。

          【讨论】:

            【解决方案10】:

            对我来说Alt + Middle Click(滚轮)工作正​​常 您必须点击Alt,然后长按 Middle Click,然后滚动向上向下

            【讨论】:

              【解决方案11】:

              我在 Windows 10 中使用最新版本的 VS 代码,即 1.46.1(2020 年 5 月)。只需在要选择的行上按 Alt+mouse left click。这将让您一次选择多行并让您编辑它们。也可以按Esc 退出。 如果您来自崇高文本,这真的很有帮助。

              【讨论】:

                【解决方案12】:

                在带有 KDE 的 Linux Fedora(我尝试使用 Fedora 31)上,转到:

                1. 系统设置
                2. 窗口管理
                3. 窗口行为
                4. 窗口操作
                5. 内窗口、标题栏和框架操作
                6. 单击左键框
                7. 选择什么都不做(代替移动/拖动)

                现在您可以使用 Alt + 左键单击来选择多行!

                【讨论】:

                  【解决方案13】:

                  version 1.43 (February 2020)

                  您现在可以通过以下方式切换列选择模式,该模式会更改鼠标手势和箭头键:

                  • 菜单栏 > 选择 > 列选择模式
                  • Ctrl+Shift+P(显示所有命令)> 切换列选择模式
                  • 为命令"editor.action.toggleColumnSelection"绑定您的密钥

                  注意:激活后状态栏中有一个“列选择”面板,您可以再次按下禁用它。

                  【讨论】:

                    【解决方案14】:

                    对我来说可行的解决方案是首先选择所需的文本进行编辑,然后使用 CTRL + F2 选择页面中的所有匹配数据. 您也可以按照@lesterCovax

                    的建议使用 CTRL+Shift+L

                    请注意:上述解决方案利用了 VSCode 编辑器的固有能力,可以在整个页面中选择相似的文本,因此请小心。

                    对我来说,上述 Ctrl + ALT + Arrowkeys 的解决方案不起作用,因为它导致屏幕改变其显示方向而不是选择VSCode 中的行。

                    【讨论】:

                      【解决方案15】:

                      当我需要在文件中快速编辑约 20k 行时,使用 SHIFT + ALT + isolution from @maxime 对我有用。提到的大多数其他键盘快捷键仅对有限数量的行有用。 SHIFT 选择要编辑列的区域,然后按SHIFT + ALT + i 是处理此问题的最有效方法。

                      我偶然发现(这里还没有提到)“光标编辑模式”中的行数限制为 10k 行(这里有an open Github feature request 增加它)。这意味着对于非常大的文件,最好编写脚本编辑,而不是手动进行。

                      对于像@specimen 这样必须使用像CTRL + SHIFT + L 这样的快捷方式(默认绑定是Select all occurrences of current selection)来完成此操作的用户,您应该检查您是否没有安装键盘映射扩展。您可以通过在扩展窗格中搜索@recommended:keymaps 来检查,转到File > Preferences > Keymaps (CTRL+K CTRL+M)。

                      默认的 [Windows] 键盘映射可以在 PDF 格式 HERE 中找到,或者您可以转到 File > Preferences > Keyboard Shortcuts 查找/修改当前绑定。还有更深入的键绑定文档HERE

                      【讨论】:

                        【解决方案16】:

                        在 Visual Studio Code 中,只需按 Alt 并将光标放在编辑位置(您要编辑的位置)并右键单击选择。

                        【讨论】:

                        • 这个答案似乎不完整
                        【解决方案17】:

                        除了所有答案之外,还有一种方法。选择您想要的行,然后按:

                        • Windows:Shift + Alt + i
                        • Mac:shift + 选项 + i

                        这会在所选内容的每一行中放置一个光标。

                        【讨论】:

                          【解决方案18】:

                          我正在使用Sublime Text 键映射,而最佳答案提供的键绑定似乎不起作用:( 可能是 Visual Studio Code 和 sublime 键映射之间存在一些冲突。

                          推荐的键绑定by @Han 对我有用(非常感谢!):

                          • 使用 Ctrl + Shift + Up/Down 进入多行光标模式
                          • Esc 退出

                          (旁注)下面是一个使用Emmet 和多行光标的小例子(通过上面列出的这些键绑定启用和禁用):

                          【讨论】:

                            【解决方案19】:

                            如果您使用的是 Linux,则可能与 Alt + click 发生冲突,这是“移动窗口”的默认设置。

                            您可以转到菜单设置窗口行为窗口行为操作选项卡

                            只需删除 Alt + left(按住)即可。

                            这是最好的方法,因为你不需要按住两个 + 键来完成这样一个简单的任务。

                            【讨论】:

                              【解决方案20】:

                              我的设置:Windows 8.1 64 位,Visual Studio Code 版本 1.33.1。

                              问题:与 Intel HD Graphics 4000 的键盘快捷键冲突

                              我在使用 Visual Studio Code 的默认快捷方式时遇到了问题(Ctrl + Alt + UP, Ctrl + Alt + DOWN)。就我而言,这些命令分别将我的屏幕旋转 0º 和 180º。它正在发生,因为我的计算机上安装了 Graphic Intel 应用程序。然后,我只是禁用了这个应用程序的快捷方式。

                              Here 是帮助某人的教程。

                              【讨论】:

                              • 在 Windows 7 中您可以右键单击桌面,选择图形选项 -> 热键 -> 禁用。
                              • 是的!!!这也是我的答案,其他建议不起作用,接受的答案让我的窗口颠倒了。
                              【解决方案21】:

                              在最新版本的 Visual Studio Code 中,您现在可以在按住 Option(Windows 上为 Alt)的同时拖动光标以选择多行上的同一列。

                              要启用此功能,请确保将您的 editor.multiCursorModifier 更改为如下所示:

                              "editor.multiCursorModifier": "ctrlCmd"
                              

                              来自 Visual Studio Code 发行说明 1.32.0:

                              在以下视频中,选择从常规选择开始,然后按住 Alt 直到松开鼠标按钮:

                              【讨论】:

                              • 谢谢,这行得通。有趣的是,虽然“alt”不起作用,但“ctrlCmd”实际上使它与 ALT 键一起工作。 头部爆炸
                              • @tyler-becks 你是如何制作这个 GIF 的?
                              • @bvdb 我认为发生的事情是使用 Alt 作为多光标修饰符会阻止它通过拖动来进行框选择
                              【解决方案22】:

                              在 Windows 中,以下组合适用于我:

                              • Ctrl + Shift + Alt + 向下箭头
                              • Ctrl + Shift + Alt + 向上箭头

                              【讨论】:

                              • 这似乎与 Visual Studio 相同!
                              【解决方案23】:

                              第 1 步:

                              选择要替换的单词


                              第 2 步:

                              Ctrl + F 这将选择它的多次出现


                              第 3 步:

                              Alt + Enter 这会将光标设置在所有找到的匹配项上

                              第 4 步:

                              只需开始输入新单词


                              【讨论】:

                              • Mac 上也是cmd+shift+L。一步完成同样的事情。
                              • @Andres 谢谢!这确实解决了我在 Windows 上的问题,其他解决方案翻转了我的屏幕。
                              【解决方案24】:

                              我使用的是vscodevim 扩展,所以我不确定这是否是一个常见问题。但是,我遇到了 Ctrl + Alt + UpArrow 翻转我的屏幕的问题。

                              看着Visual Studio Code Basics(我不知道他们是否在最近的更新中改变了这个),它说使用:

                              Ctrl + Alt + Shift + (/)

                              【讨论】:

                              • Ctrl + Alt + [箭头键] 是屏幕旋转的常用键盘快捷键,当然也适用于英特尔显卡驱动程序和/或相关软件。我想它在 VSCode 进入之前就被它拦截了。最近(而且很烦人,因为我曾经使用过它)轮换似乎在英特尔软件的更新中停止了,现在只能通过冗长的菜单获得在 Windows 中。因此,键盘快捷键应该可以在 VSCode 中使用更新的驱动程序。
                              【解决方案25】:

                              (Windows 10 pro x64)这里有一些方法!

                              1. Alt + 点击

                              2. Alt + Ctrl + /

                              3. 键绑定:Ctrl + click(???不起作用!)

                              【解决方案26】:

                              在 Mac 上是:

                              Option + Command 同时按向上 或向下 箭头键。

                              【讨论】:

                                【解决方案27】:

                                通过version 1.13 (May 2017),您终于可以更改用于创建多个光标的默认修饰键(添加到设置中):

                                "editor.multiCursorModifier": "ctrlCmd"
                                

                                P.S.:从此刻起,修饰符“follow link”将是Alt

                                【讨论】:

                                • 很多其他答案都没有解决这个问题。这是 - 如何通过鼠标点击放置额外的插入符号。
                                【解决方案28】:

                                使用 Ctrl + D 在 Windows 和 Linux 中使用多词编辑相同的词。

                                在 Mac 上使用 CMD + D

                                【讨论】:

                                • 正如@Krishnaraj 所说,Ctrl + D 有效。实际上 VSCode 和 Sublime 都支持这一点。确保在不释放 ctrl 的情况下对所有以后的事件应用 Ctrl + D。是的,您仍然需要手动选择,它只是帮助您释放鼠标。 MacOS Command + D
                                • 注意:Ctrl + D 仅适用于“下一个选择”,“上一个选择”只能通过 Ctrl + P 访问,然后键入:“>将选择添加到上一个查找匹配”(部分那个文本!)
                                【解决方案29】:

                                框选择

                                Windows:shift + alt + 鼠标左键

                                macOS:shift + 选项 + 点击

                                这与an answer to Does Visual Studio Code have box select/multi-line edit?中提到的相反。

                                【讨论】:

                                • 我不是 Shift+Alt+Click 的粉丝(尽管它有效)。所以为了让它像在 VS 中一样工作(在 Windows 上),我这样做了:转到选择菜单,然后选择切换到 Alt+单击多光标。现在 Alt+Click 进行框选择。
                                【解决方案30】:

                                您只需 Alt + 单击即可获得其他光标。如前所述,Ctrl + Alt +

                                【讨论】:

                                • 你可以使用 Alt+Shift+click 来选择两行和中间的每一行。
                                • 问题是,如何编辑它的键绑定(Alt + Click 的名字是什么?)
                                • Alt + click 自动定义单词,或者移动到单词的左侧,对我不起作用。
                                • 发现the answer我的问题,它可以是Alt(这是默认,或Ctrl / ⌘.这个选项可以用settings.json中的"editor.multiCursorModifier": "ctrlCmd"键修改。
                                • 如果我想要每一行都这样呢?有没有比 Alt Ctrl 一直点击更快的方法?
                                猜你喜欢
                                • 2021-10-06
                                • 1970-01-01
                                • 2018-10-16
                                • 2015-08-03
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2017-07-27
                                • 1970-01-01
                                相关资源
                                最近更新 更多