如何在 Visual Studio Code 中使用代码片段
什么是代码片段?
代码片段是一小段可能会反复编写的代码,通过存入代码片段之后,可以快速重复生成这段代码。
为什么要使用代码片段?
使用代码片段可以提高工作效率,让你将更多时间投入到代码设计上,而不是反复编写相同的代码。此外,它还能减少鼠标移动的次数,让你更专注于编程任务。
如何在 Visual Studio Code 中使用代码片段?
- 在 Visual Studio Code 中,右键新建一个名为 "
.vscode" 的文件夹。 - 在 "
.vscode" 文件夹中创建一个以你的代码片段名命名的文件,并使用 ".code-snippets" 作为后缀,例如my-snippet.code-snippets。 - 在该文件中编写你的代码片段。
可以利用下面这个网站轻松生成代码片段
编写你的第一个代码片段
我们以 React 的代码片段为例:
{
"在文档中插入 useEffect": {
"prefix": "useEffect",
"body": [
"useEffect(() => {",
"${2}",
"}, [${1}]);${0}"
],
"description" : "插入 useEffect"
}
}
在这个代码片段中:
$1表示第一个占位符。$2表示第二个占位符。$3表示第三个占位符。- 你还可以继续使用
$4,$5, 等等,来表示后续的占位符。
在编辑器中使用这个代码片段时,你可以通过按下Tab键或其他指定的键来依次跳转到这些占位符,然后输入你需要的内容。当你完成输入后,继续按Tab键通常会将光标移到下一个占位符位置或代码块的结尾,以便你继续编辑或完成代码。
这个设计让你在插入代码后,无需移动鼠标,通过按Tab键等方式轻松导航到关键的编辑位置。而 $0 表示插入代码后光标的最终位置,因此,如果你已经完成了对 $1 的编辑,按下Tab键将光标移到 $0 的位置,使你可以方便地继续编辑代码的其余部分或将光标移出代码块。
这种灵活的设计使得代码片段可以适用于不同的代码插入场景,提高了编码效率。
通过使用这种方式,你可以在编写React代码时更加高效地利用代码片段,无需频繁移动光标,提高了编码效率。
在代码片段中写入默认值
可是使用占位符在代码片段中写入默认值
占位符 占位符是有默认值的 tab stops。他们一般被大括号包裹着,就像 {1:first ${2:second}}。
{
"在文档中插入 useEffect": {
"prefix": "useEffect",
"body": [
"useEffect(() => {",
"${2}",
"}, [${1: 请在这里写入你的依赖项}]);${0}"
],
"description" : "插入 useEffect"
},
}
同时选中代码片段中的多个部分
使用镜像占位符
{
"For 循环": {
"prefix": "for",
"body": [
"for (let ${1:index} = 0; ${1:index} < ${2:array}.length; ${1:index}++) {",
"\tconst ${3:element} = ${2:array}[${1:index}];",
"\t$0",
"}"
]
}
}
下拉框选项
在预设位置使用下拉框选项
{
"插入 true or false": {
"prefix": "if",
"body": [
"if (${1|true,false|}) {",
"\t${2: // Code to run if true}",
"} else {",
"\t${3: // Code to run if false}",
"}$0"
]
}
}
插入变量
| 工作区变量名 | 描述 |
|---|---|
| TM_SELECTED_TEXT | 当前选中的文字或空字符串 |
| TM_CURRENT_LINE | 当前行的文字 |
| TM_CURRENT_WORD | 光标下的单词或空字符串 |
| TM_LINE_INDEX | 以0为第一行的当前行序号 |
| TM_LINE_NUMBER | 以1为第一行的当前行序号 |
| TM_FILENAME | 当前文档的文件名 |
| TM_FILENAME_BASE | 当前文档的文件名,不带扩展名 |
| TM_DIRECTORY | 当前文档所在的文件夹 |
| TM_FILEPATH | 当前文件的绝对路径 |
| CLIPBOARD | 当前剪贴板的内容 |
| WORKSPACE_NAME | 当前打开的工作区或文件夹的名字 |
| 时间变量名 | 描述 |
|---|---|
| CURRENT_YEAR | 当前年份 |
| CURRENT_YEAR_SHORT | 当前年份的缩写,即最后两位数字 |
| CURRENT_MONTH | 当前月份,两位数字表示 (例如 '07') |
| 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 | 当前秒数 |
| CURRENT_SECONDS_UNIX | 从UNIX起的秒数(时间戳) |
| 注释变量名 | 描述 |
|---|---|
| BLOCK_COMMENT_START | 块注释的起始字符串(例如,在HTML中为 <!--) |
| BLOCK_COMMENT_END | 块注释的结束字符串(例如,在HTML中为 -->) |
| LINE_COMMENT | 行注释的字符串(例如,在JavaScript中为 //) |
配置 settings.json
最后,建议在 .vscode/settings.json 配置一下信息,体验更好噢
"editor.quickSuggestions": {
"other": true, // 启用快速建议,用于除了注释和字符串之外的其他代码。
"comments": true, // 启用在注释中的快速建议。
"strings": true // 启用在字符串中的快速建议。
},
"editor.snippetSuggestions": "top", // 将代码片段建议放置在快速建议的顶部,以便更容易访问。
"editor.tabCompletion": "onlySnippets" // 仅在输入时使用代码片段作为选项来完成代码,而不包括其他自动完成项。