VSCode Snippets用法
郝伟 2022/08/07

http://121.199.10.158:8107/c5p8d4he6gjkxm0oq1zrbslt2v37wify9aunx/mpan.x20kdf.zaksu-o021tvvtqw.com/Year2022/R22029_vscode_snippets.html

简介

打开配置界面

点击左下角的齿轮图案,然后找到Command Palette选项(或者使用快捷键Ctrl + Shift + P),在VSCode窗口上方出现的搜索框输入Insert Snippets即可查看到

代码段默认保存在本机,在Windows系统下,用户的代码段文件默认为 C:\Users\hao\AppData\Roaming\Code\User\snippets\python.json,默认内容如下:

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

需要注意:无论是本地库还是远程库,都使用本地的代码段文件

添加 snippets 代码段

简介

Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and description.

每个片段包括三个定义:prefix, body and description

示例及实用代码段

{
	"Print to console": {
		"prefix": "log",
		"body": [
			"console.log('$1');",
			"$2"
		],
		"description": "Log output to console"
	}
}
{
	"Print to console": {
		"prefix": "log",
		"body": [
			"console.log('$1');",
			"$2"
		],
		"description": "Log output to console"
	},
	"File description": {
		"prefix": "fdes",
		"body": [
			"# encoding=utf-8\n'''\n作者:郝伟老师\n日期:$1\n描述:\n历史:\n'''",
			"$2"
		],
		"description": "Log output to console"
	},
	"Python Show":{
		"prefix": "pyshow",
		"body":[
			"def retrieve_name_ex(var):\n    stacks = inspect.stack()\n    try:\n        code = stacks[2].code_context[0]   # 获得调用行的代码\n        callFunc = stacks[1].function      # 获得调用的函数名\n        # 获得函数中起始索引位置,以取得变量名称的字符串\n        startIndex = code.index("(", code.index(callFunc) + len(callFunc)) + 1\n        endIndex = code.index(")", startIndex)\n        name=code[startIndex:endIndex].strip() # 获得变量名称\n        return name\n    except:\n        return ""\ndef show(var):\n    print(retrieve_name_ex(var), '=', var)"
		],
		"description": "powerful print"
	}
}

经验

  1. Markdown默认是没有开智能提示的,需要手工打开,具体方法是在 settings.json (Ctrl+T, 输入 settings.json 打开) 添加以下内容:
    "[markdown]": {
        "editor.defaultFormatter": "darkriszty.markdown-table-prettify",
        "editor.unicodeHighlight.ambiguousCharacters": false,//默认值
        "editor.wordWrap": "on",//默认值
        "editor.quickSuggestions": {
            "comments": "on",
            "strings": "on",
            "other": "on"
        }//默认为flase
    },
  1. 只要修改了 C:\Users\hao\AppData\Roaming\Code\User\settings.json,在保存时就会自动重启VSCode。

参考

[1] 官网说明文档, https://code.visualstudio.com/docs/editor/userdefinedsnippets
[2] CSDN文章:VSCode中snippets(代码模板)的使用, https://blog.csdn.net/angry_rooster/article/details/118560317