vscode 如何创建自定义代码片段

本文以创建JavaScript代码片段为例,介绍了在VSCode中创建代码片段的步骤,包括通过快捷键或菜单打开配置文件,选择语言后修改JSON配置。还说明了代码片段的参数,如触发前缀、主体、光标位置等,以及内置变量的含义。

这里以创建一个 javascript 代码片段为例:

1.首先可以打开一个javascript的文件(或在当前打开文件中)按快捷键Ctrl+Shift+P打开命令输入 snippet : (也可以点击文件=>首选项=>用户代码片段)

2.选择选项后会出现一个语言列表用以选择给哪种语言创建代码段,这里以设置javascript的Console.WriteLine代码段为例,其他语言方法是一样的.
选择javascript后会自动打开一个JSON格式的配置文件.Visual Studio Code默认已经给出Demo了.照葫芦画瓢即可.

{
	// Place your snippets for javascript here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// },
}

参数解释:

prefix      :这个参数是使用代码段的快捷入口,比如这里的log在使用时输入log会有智能感知.
body        :这个是代码段的主体.需要设置的代码放在这里,字符串间换行的话使用\r\n换行符隔开.注意如果值里包含特殊字符需要进行转义.
        多行语句的以,隔开
$1          :这个为光标的所在位置.
$2          :使用这个参数后会光标的下一位置将会另起一行,按tab键可进行快速切换,还可以有$3,$4,$5.....
description :代码段描述,在使用智能感知时的描述

修改为以下内容:

{
	// Place your snippets for javascript here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	"Page Header": {
		"prefix": "ducx",
		"body": [
			"/**",
			" * $1",
			" * ",
			" * @author ducx",
			" * @created $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
			" */",
			"$2"
		],
		"description": "page header"
	}
}

保存之后,打开一个 js 文件,输入前缀 ducx 出现快捷提示窗后回车,此时已经生成了我们自定义的代码片段结构,依次按 tab 

/**
 * 
 * 
 * @author ducx
 * @created 2018/08/31 17:08:37
 */

基本语法补充说明

  • prefix 触发快捷提示的字符串前缀
  • body 代码片段主体
    • $num 是每次按 tab 键光标移动对位置,$0 表示光标最后停留位置,不设置 $0,这光标最终位置在文件末尾;
    • ${2:默认文本} 跳转到指定位置到同时选中默认文本,方便修改;
    • $CURRENT_YEAR是引用的 snippets 内置变量,其它还有:
      • TM_FILENAME 当前文件名
      • TM_FILENAME_BASE 当前文件名,不带扩展名
      • TM_DIRECTORY 当前文件所属目录的绝对路径
      • TM_FILEPATH 当前文件的绝对路径
      • CURRENT_YEAR 当前年份
      • CURRENT_YEAR_SHORT 当前年份,最后两位数字
      • CURRENT_MONTH 当前月份数字形式,两位表示
      • CURRENT_MONTH_NAME 当前月份英文形式,如 July
      • CURRENT_MONTH_NAME_SHORT 当前月份英文缩写形式,如 Jul
      • CURRENT_DATE 当前日
      • CURRENT_DAY_NAME 当前星期,如 Monday
      • CURRENT_DAY_NAME_SHORT 当前星期缩写形式,如 Mon
      • CURRENT_HOUR 当前小时,24小时格式,两位表示
      • CURRENT_MINUTE 当前分钟,两位表示
      • CURRENT_SECOND 当前秒,两位表示
    • \n 换行
    • \t 制表符
  • description 快捷提示窗对该代码片段对描述
VSCode自定义代码片段无法使用,可从以下方面排查解决: - **检查代码片段文件路径与格式**:要保证代码片段文件路径无误,像全局作用域代码块创建VSCode软件内部文件;文件夹作用域代码块创建在某个文件下的`.vscode`隐藏文件夹中;特定文件类型作用域代码块创建路径和全局作用域一致,但仅适用于指定文件类型。同时,代码块书写规范要正确,例如添加自定义Python代码片段时,在`python.json`文件注释后添加的代码格式需准确,像下面的示例: ```json "HEADER":{ "prefix": "header", "body": [ "# -*- encoding: utf-8 -*-", "'''", "Author : you name ", "Time : $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND", "Contact : you_email_address@qq.com", "'''", "", "# here put the import lib", "$0" ] } ``` - **确认关键字输入**:要正确输入自定义代码片段设置的关键字,比如定义代码片段时`"prefix": "reset"`,那输入`reset`回车才会出现相应代码。示例如下: ```json { "css reset": { "prefix": "reset", "body": [ "/*Custom Css Reset*/", "@charset \"utf-8\";", "*{box-sizing:border-box;}" ], "description": "css reset" } } ``` - **检查VSCode设置**:查看VSCode的相关设置,确保代码片段功能未被禁用。有时VSCode的某些扩展或设置可能会影响代码片段的正常使用。 - **检查文件类型**:对于特定文件类型作用域的代码片段,要保证在指定的文件类型中使用。如创建的是JavaScript类型代码片段,就不能在Vue文件中使用。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值