【问题标题】:Select everything between matching brackets in VS Code选择 VS Code 中匹配括号之间的所有内容
【发布时间】:2016-10-16 13:02:49
【问题描述】:

在 VS Code 中是否有可用的快捷方式来选择匹配括号之间的所有代码?例如。在 Atom 中,这个快捷方式是ctrl+alt+m

【问题讨论】:

    标签: visual-studio-code keyboard-shortcuts


    【解决方案1】:

    将光标放在括号内(不是紧挨着括号)并执行editor.action.smartSelect.grow,直到括号内的所有内容都被选中。默认快捷键是 Shift+Alt+Right(或 Ctrl+Shift+ Right 在 Mac 上)。

    您可以使用 editor.action.smartSelect.shrink 缩小选择范围,它具有默认快捷键 Shift+Alt+Left(或 Ctrl+Shift+Left 在 Mac 上)。

    【讨论】:

    • 有时它不起作用,收缩也不起作用。是不是VSCode的bug
    • 我使用的是 VSC 1.8.1,通过按 shift + alt + right(最后一个键必须按 3 次)来工作。
    • 这个好像不存在了?
    • 从 1.19.2 开始的默认值是 ctrl+shift+cmd+right 增长和 ...-left 收缩。只需在键盘快捷键菜单中搜索“smartselect”,这两个命令及其当前设置就会突出显示。
    • @AhmedFasih 此快捷方式有效,但在您处于多选模式(Cmd+D)时无效...它只选择第一行的内容:(
    【解决方案2】:

    我正在使用这个扩展程序,名为 Quick and Simple Text Selection - 是的,就是这个名称 :)

    如果您不想使用扩展程序,这是我目前最好的方法:转到 edit keyboard shortcuts 并从那里打开您的 keybindings.json 文件并添加以下行

    {
        "key": "ctrl+'",
        "command": "editor.action.smartSelect.grow",
        "when": "editorTextFocus"
    }
    

    【讨论】:

    • 我强烈推荐这个扩展
    【解决方案3】:

    我建议将这些键重新映射到另一个键,这种组合键很流行,有时会因为与其他应用程序冲突而不起作用。

    打开按键绑定设置,输入smartselect即可找到该设置,grow是将选区从光标当前位置扩大到最近的括号,如果要扩大或缩小到下一个括号,请按多次。

    【讨论】:

    • 这看起来不错,但对我不起作用!有什么想法吗?
    • 在当前版本 (1.55.2) 中,默认的smartselect^-shift-right
    【解决方案4】:

    我仍然认为the expand region extension 是这样做的方式。但是 vscode 1.20 确实添加了“选择到括号”命令(参见命令面板)。它没有默认键绑定,但命令是

    editor.action.selectToBracket
    

    这样您就可以分配自己的绑定。但它不如扩展方便。上面提到的 smartSelect 选项给了我意想不到/不想要的结果。

    --------- 更新 ---------------

    editor.action.smartSelect.expand 命令是在此处的答案之后的某个时间点添加的。

    绑定到 Shift+Alt+RightArrow。如果您愿意,将逐步扩大选择范围,包括不包括括号、括号。您需要不断触发 RightArrow 才能到达您想要的位置。如果您从括号旁边开始,则不会仅在括号内选择 - 从其他任何地方开始,它会。

    【讨论】:

    • 是否可以修改 editor.action.selectToBracket 以便在括号之间进行选择?它目前适用于“{}”和“[]”,但不适用于“()”
    • @Stenemo 任何更新都可以选择括号和括号?
    • @ SantoshGupta7 和 @Stenemo :请参阅我在答案末尾添加的关于选择括号和不包括括号的附加信息。
    【解决方案5】:

    正如 Mark 所回答的,editor.action.selectToBracket 有效。我将键绑定分配给

    ctrl+shift+m

    作为键盘快捷键。这曾经是旧版本 VS 中的默认设置。

    注意:Ctrl+m 是“转到括号”的快捷键

    【讨论】:

    • 格式化你的答案。 括号不是括号
    • 已更新,感谢 Prateek
    • 为什么会选择括号?
    【解决方案6】:

    editor.action.smartSelect.expand,分配给 ctrl+shift+right 将扩展您当前的选择,因此在字符串中,将扩展为当前单词,并在再次按下时到整个字符串。我认为这是学习的正确捷径,因为它还可以扩展到字符串之外以选择更多包装器,这是一件非常巧妙的事情。

    从 v1.44 开始,不再为 editor.action.smartSelect.grow 分配键盘快捷键,正如 Wosi 当前接受的答案中所述。

    【讨论】:

    • 我想知道为什么会有 editor.action.smartSelect.groweditor.action.smartSelect.expand。根据您的回答,听起来他们为了后者的利益而弃用了前者。奇怪的是,当在编辑器中为 settings.json 进行智能感知时,两者都会出现,而我发现关于该主题的信息非常少。通常,我发现 VSCode 的命令记录不充分。在这方面有什么建议吗?
    【解决方案7】:

    在 MacOS 中:它是 shift + control + right,您点击几次即可展开 smartSelect

    • 要查找与smartSelect 相关的您自己的设置,请转至Keyboard Shortcuts 或使用command + k command + s
    • 您可以通过输入command + k command + r 来查看VSCode Keyboard Shortcuts Reference。它将引导您到this page

    【讨论】:

      【解决方案8】:

      Win10 中的简答 vscode 2021 : ctrl + shift + space

      --

        "key": "ctrl+shift+space",
        "command": "editor.action.smartSelect.grow",
        "when": "editorTextFocus"
      

      【讨论】:

        【解决方案9】:

        扩展名BracketSelect 完美解决了这个问题! 它在最近的匹配引号或括号 一次之间选择所有文本。按两次,它将分隔元素(引号或括号)添加到选择中。再次按下它,选择就会向上增长。

        基本上,它的工作方式类似于smartSelect 命令,但有一个巧妙的区别,它一次选择括号或引号内的所有文本,对我来说,这是一种比smartSelect 工作方式更常见的用例。

        【讨论】:

          猜你喜欢
          • 2018-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-20
          • 1970-01-01
          • 1970-01-01
          • 2021-12-06
          相关资源
          最近更新 更多