Visual Studio代码环绕

Ron*_*our 40 behavior editor visual-studio-code

我找不到用VS Code中的某些内容包围选择的方法.

例如,做这样的事情:text=> "text"只需选择单词text并输入键即可"

另一个带有以下文字的例子: mon tue wed thu fri sat sun

通过选择所有这些词:

mon| tue| wed| thu| fri| sat| sun|

和打字"我想执行这样的事情:

"mon" "tue" "wed" "thu" "fri" "sat" "sun"

如果有人有任何想法.

谢谢.

小智 38

选择一些文本并按下"已经在VSCode中工作以包围单个项目,并且也适用于多行选择.

注意:这取决于语言.语言语法必须定义开括号和结束括号,例如引号,大括号等.例如,这不适用于"纯文本"文件.使用CTRL+ SHIFT+ 更改语言模式,P然后键入Change Language Mode ENTER并选择支持此类似JavaScript的内容.

你所追求的并不像那样高效.你最好的选择是使用多个游标.

将光标放在第一行的开头,按CTRL+ ALT+ DOWN在下一行的下方添加另一个光标.继续这样做,直到你的所有单词前面都有一个光标.

然后输入"然后END然后"你的所有行被引号括起来.

注意:要检查您是否有键绑定,它是什么,您可以随时按CTRL+ SHIFT+ P并键入Add Cursor Below,如果有键绑定,它将显示在该文本的右侧.

  • 据我所知,这仅适用于引用某些内容 - 下面的答案更像是 Visual Studio ctrl-ks,它允许选择被包围,比如说,一个 try-catch 块 - 对下面的扩展一无所知,但似乎在 VS Code 扩展库中评价很高 (2认同)
  • 注意:如果您使用扩展名(例如Vim模式)来更改键绑定行为,则该功能将不起作用,直到禁用该扩展名并重新启动VS Code。 (2认同)
  • 对于 Mac 用户,按键绑定是 Command + Option + Down (2认同)

小智 14

根据 Yuri Aps 的建议,我将以下 JSON 添加到 keybindings.json。这提供了 Ronan Lamour 要求的任何文件类型的功能,并且不需要扩展名。当使用单引号或双引号时,它适用于单选或多选。来自 Sublime,这很有帮助,因为它再现了 Sublime 原生提供的功能。

{
    "key": "'",
    "command": "editor.action.insertSnippet",
    "when": "editorHasSelection || editorHasMultipleSelections",
    "args": {
        "snippet": "'${TM_SELECTED_TEXT}'"
    }
},
{
    "key": "shift+'",
    "command": "editor.action.insertSnippet",
    "when": "editorHasSelection || editorHasMultipleSelections",
    "args": {
        "snippet": "\"${TM_SELECTED_TEXT}\""
    }
},
Run Code Online (Sandbox Code Playgroud)


小智 11

也许你可以尝试这个扩展,你可以编写自己的自定义包装器:

https://marketplace.visualstudio.com/items?itemName=yatki.vscode-surround

一个简单但功能强大的扩展,用于在代码块周围添加包装器模板.

特征

  • 支持多种选择
  • 完全可定制
  • 自定义包装函数
  • 您可以分别为每个包装函数指定快捷方式
  • 很好的格式化

演示1:从快速选择菜单中选择包装功能

演示1

演示2:包装多项选择

演示2


Fra*_*ato 7

2022 年 2 月 15 日更新:

VS Code 原生引入了带有 JS/TS 片段的 Surround

它可能与这个问题并不完全相关,但它可能会帮助那些在 vs 代码中以“包围”为目的而进入这个问题的人。

  • @majkinetor 是的,它确实 "add quote": { "prefix": "q", "body": ["\"$TM_SELECTED_TEXT$0\"", ], "description": "Quote" } (2认同)

Vic*_*ian 6

我从 (neo)vim 切换到 VS Code,并且之前使用 Tim Pope 的 vim 出色的“vim-surround”插件。我找到了 VS Code 的该插件的端口。在我看来,一旦你学会了快捷键,它就非常有用,而且非常高效!

链接:

如果您在 VS Code 中使用 vim 或 vim 绑定,请尽情享受!

编辑:VSCodeVim 插件自动包含环绕功能,因此如果您安装了该插件,则实际上不需要该vscode-surround插件。


Yur*_*Aps 6

在VS Code中,按住Command + Shift + P,然后输入:“>首选项:打开键盘快捷键”

选择编辑keybindings.json。在允许修改的区域中,将其粘贴在方括号内:

{
    "key": "cmd+p",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "snippet": "\"${TM_SELECTED_TEXT}\""
    }
}
Run Code Online (Sandbox Code Playgroud)

**请注意,在此示例中,“密钥”设置为“ cmd + p”,您可以将“密钥”更改为您喜欢的任何内容

  • 这是最干净的解决方案,无需安装任何额外的插件。 (3认同)
  • 这很棒。另外,只需将其更改为 `"snippet": "${1}${TM_SELECTED_TEXT}${1}"` 即可插入任意字符。 (3认同)