如何在VSCode中添加自定义代码段?


101

是否可以在Visual Studio Code中添加自定义代码段?如果是这样,怎么办?VSCode基于Atom,因此应该可行。



2
您还可以转到“偏好设置”>“用户代码段”,然后选择要使用其创建代码段的语言
。– Amituuush

除了它们都在后台使用Electron之外,VS Code和Atom之间确实存在关系吗?
skelliam

使用codesnippet服务可以做到这一点。您可以创建自定义代码段,一次编辑所有代码段并与codesnippet cli同步,只需从服务器提取即可!
user13428826

我想在说明中添加网页链接,有人知道该怎么做吗?
januw

Answers:


116
  1. 点击> shift+ command+p并输入摘要
  2. 选择首选项:打开用户片段
  3. 选择您要为其添加自定义代码段的语言类型
  4. vscode上有注释来解释如何添加代码段,如:> vsdoc中所述

可以说,我们想为GO语言打开自定义代码段。然后我们可以做:

  1. 命中> command+p
  2. 输入:go.json +enter然后进入自定义代码段页面

代码段以JSON格式定义,并存储在每个用户(languageId).json文件中。例如,Markdown片段位于markdown.json文件中。


更新新工具:
代码段生成器站点:https : //snippet-generator.app/


3
代码段生成器非常有帮助
rainversion_3 '19

68

选项-1有一个VsCode插件,名为:snippet creator ..

安装后,您要做的就是:

  1. 选择您想要使其成为代码段的代码。
  2. 右键单击它,然后选择“命令面板”(或Ctrl+ Shift+ P)。
  3. 编写“创建代码段”。
  4. 选择触发片段摘要所需的文件类型。
  5. 选择一个代码段快捷方式。
  6. 选择一个代码段名称。

选项-2检查此网站。您可以为vs代码,崇高的文字和原子生成摘要。

在此网站中生成了摘要。转到相应的IDE的摘录文件并将其粘贴。例如,对于VS代码中的JS代码段,请转到“文件”->“首选项”->“用户代码段”,然后打开javascript.json文件,然后将代码段代码从上面的网站粘贴到该代码段中,我们很好。


8
这是一个很棒的工具!我忍不住写出必须引用并转义每一行的自定义html样例代码段,因此这确实是我想要的答案。
nabrown

3
说真的,这里有救生员。
JeremyW

哇,这是一款完美的出色工具。应该标记为正确答案
StefanBob

片段生成器链接已断开。请点击以下链接:snippet-generator.app
Sandip Subedi

1
为什么要编写step1和step2?这感觉更像option1和option2,还是相关?
Xsmael

26

0.10.6版开始,您可以添加自定义代码段。阅读有关创建自己的代码片段的文档。您可以通过将json文件放在中来查找/创建自定义代码段C:\Users\<yourUserName>\AppData\Roaming\Code\User\snippets。例如,自定义javascript代码段应位于\snippets\javascript.json

您还可以发布片段,这也是一个非常好的功能。约翰·帕帕(John Papa)创建了一个不错的angular +打字稿片段,您可以将其下载为市场上的扩展程序。

这是javascript for循环文档的示例片段:

"For Loop": {
    "prefix": "for",
    "body": [
        "for (var ${index} = 0; ${index} < ${array}.length; ${index}++) {",
        "\tvar ${element} = ${array}[${index}];",
        "\t$0",
        "}"
    ],
    "description": "For Loop"
},

哪里

  • For Loop 是代码段名称
  • prefix定义在IntelliSense下拉列表中使用的前缀。在这种情况下。
  • body是代码段的内容。可能的变量是:
    • $ 1,制表位$ 2
    • $ {id}和$ {id:label}和$ {1:label}用于变量
    • 具有相同ID的变量已连接。
  • description 是IntelliSense下拉列表中使用的描述

6
他们确实需要某种多行字符串文字语法或一种将主体拉入单独文件的方法。引用和转义每行都是疯子。
Mark Wilbur

很抱歉对此答案投下反对票,这真是无赖之举
吉尔斯·巴特勒

16

您可以观看此视频以获取简短的简短教程

https://youtu.be/g1ouTcFxQSU

转到文件->首选项->用户片段。选择您的首选语言。
现在,键入以下代码以创建一个for循环代码段:

  "Create for loop":{
    "prefix": "for",
    "body":[
      "for(int i = 0; i < 10; i++)",
      "{",
      "   //code goes here",
      "}"
    ],
   "description": "Creates a for loop"
  }

大功告成
在编辑器中键入“ for”,然后使用第一个预测。

捷径 -

  1. 安装Snippet-creator扩展。
  2. 突出显示您需要制作代码段的代码。
  3. ctrl+ shift+ P,然后在命令面板上键入“创建代码段”,然后按Enter。
  4. 选择要为其创建代码段的语言(例如:-CPP),然后输入
    代码段名称,输入代码段快捷方式,然后输入代码段描述。
    您现在可以出发了。
    在您在步骤4中输入的编辑器中输入摘要快捷方式,然后选择
    最先出现的预测(如果没有预测,请按ctrl + space)。

希望这可以帮助 :)

注意:转到“文件”->“首选项”->“用户片段”。然后选择用于
创建代码段的语言。您将在此处找到代码段。


9

有一个名为:snippet creator ..的VsCode插件。

安装后,您要做的就是:

  1. 选择您想要使其成为代码段的代码。
  2. 右键单击它,然后选择“命令面板”(或Ctrl+ Shift+ P)。
  3. 编写“创建代码段”。
  4. 选择触发片段摘要所需的文件类型。
  5. 选择一个代码段快捷方式。
  6. 选择一个代码段名称。

就这样 ..

注意:如果要编辑代码段,可以在[fileType] .json
示例:Ctrl+中找到它们P,然后选择“ javascript.json”


5

您可以添加自定义脚本,转到File --> Preferences --> User Snippets。选择您的首选语言。

如果选择Javascript,则可以看到默认的自定义脚本,console.log(' ');如下所示:

"Print to console": {
    "prefix": "log",
    "body": [
        "console.log('$1');",
        "$2"
    ],
    "description": "Log output to console"
},

5

我尝试通过在javascriptreact.json中添加代码段进行尝试,但此方法对我不起作用。

我尝试将代码片段添加到全局范围中,并且它的工作原理就像是魅力。

FILE --> Preferences --> User snippets

在这里选择New Global Snippets File,命名为javas criptreact.code-snippets

对于其他语言,您可以命名为[your_longuage] .code-snippets

在此处输入图片说明


4

到目前为止,此功能尚未公开,但即将推出。您可以将它们添加到一个文件夹中,它们会出现,但是可能会更改(由于某种原因,未记录)。

最好的建议是将其添加到uservoice网站并等待其最终发布。但是它来了。



0

如果您不想用JSON编写代码片段,请查看Snipster。它使您可以像编写代码本身一样编写代码片段-不必将每一行都用引号引起来,转义字符,添加元信息等。

它还允许您编写一次,然后在任何地方发布。因此,您将来可以在VS Code,Atom和Sublime中使用您的代码段,以及更多的编辑器。更多信息在这里


0

这可能不是一个真正的答案(就像上面已经回答的那样),但是如果您有兴趣为其他人创建自定义代码段,则可以使用yeoman和npm(默认情况下,NodeJS附带)来创建扩展。注意:这仅用于为其他系统创建摘要。但这也对您有效!除了需要完整的JS代码。

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.