Software-编程终端-VSCode-1.进阶设置

代码片段

创建特定代码片段

用到vscode的同学,大部分都是要进行代码开发工作的。而代码开发为了保证代码的可追溯、可查询、可维护等相关诉求,势必会对代码编写提出诸多的规范性要求和标准,以有效的提高项目协作和复杂代码的生命周期。这些规范/标准会要求我们在进行代码开发时,记录项目/代码名称,功能,开发时间,作者等一系列信息,而这部分格式化内容的填写,为保证格式满足规范,其实非常浪费时间,所以我们可以通过使用模板,只填写内容而不需要去手动完成标准化说明步骤的撰写,更多的时间用在编程本身。
使用vs code建立自定义的模板,可以极大的提高我们的效率,模板可以设置多个,在这里我们以一段python开发代码为例

File->Preferences->User Snippets(用户->首选项->用户片段)
输入对应的模板名称,这里我们以 snippets_python_demo ,选择后会打开一个python.json的文件进行编辑。将内容改为下述内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{
"HEADER":{
"prefix": "snippets_python_demo",
"body": [
"#!/usr/bin/python",
"# -*- encoding: utf-8 -*-",
"'''",
"@File : $TM_FILENAME",
"@Time : $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
"@Author : Liu.Bo ",
"@Version : 1.0.0.0",
"@Contact : liubo4@genomics.cn/614347533@qq.com",
"@WebSite : http://www.ben-air.cn/",
"'''",
"import logging",
"from logging.handlers import RotatingFileHandler",
"from argparse import ArgumentParser",
"",
"program = '$TM_FILENAME'",
"version = '1.0.0.0'",
"",
"parser = ArgumentParser(prog=program)",
"parser.add_argument('-in' , dest='input' , required=True, action='store', type=str, help='input File')",
"parser.add_argument('-out', dest='output', required=True, action='store', type=str, help='output File')",
"args = parser.parse_args()",
"",
"def log_config():",
" LOG_FORMAT = '[%(asctime)s][%(levelname)s]: %(message)s'",
" level = logging.INFO",
" logging.basicConfig(level=level, format=LOG_FORMAT)",
" #创建RotatingFileHandler对象,满2MB为一个文件,共备份3个文件",
" log_file_handler = RotatingFileHandler(filename='test.log', maxBytes=2*1024*1024, backupCount=3)",
" # 设置日志打印格式",
" formatter = logging.Formatter(LOG_FORMAT)",
" log_file_handler.setFormatter(formatter)",
" logging.getLogger('').addHandler(log_file_handler)",
"",
"def main():",
" Input = args.input",
" Output = args.output",

" log_config()",
"",
"if __name__ == '__main__':",
" main()",
"",
"$0"
],
}
}

然后再次创建python脚本后,我们在编码区输入snippets_python_demo(prefix 对应的内容) 就可以直接基于我们在模板中填写的内容生成一个初始化的python代码框架。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/python
# -*- encoding: utf-8 -*-
'''
@File : tes.py
@Time : 2023/10/24 14:06:31
@Author : Liu.Bo
@Version : 1.0.0.0
@Contact : liubo4@genomics.cn/614347533@qq.com
@WebSite : http://www.ben-air.cn/
'''
import logging
from logging.handlers import RotatingFileHandler
from argparse import ArgumentParser

program = 'tes.py'
version = '1.0.0.0'

parser = ArgumentParser(prog=program)
parser.add_argument('-in' , dest='input' , required=True, action='store', type=str, help='input File')
parser.add_argument('-out', dest='output', required=True, action='store', type=str, help='output File')
args = parser.parse_args()

def log_config():
LOG_FORMAT = '[%(asctime)s][%(levelname)s]: %(message)s'
level = logging.INFO
logging.basicConfig(level=level, format=LOG_FORMAT)
#创建RotatingFileHandler对象,满2MB为一个文件,共备份3个文件
log_file_handler = RotatingFileHandler(filename='test.log', maxBytes=2*1024*1024, backupCount=3)
# 设置日志打印格式
formatter = logging.Formatter(LOG_FORMAT)
log_file_handler.setFormatter(formatter)
logging.getLogger('').addHandler(log_file_handler)

def main():
Input = args.input
Output = args.output
log_config()

if __name__ == '__main__':
main()

特定语言开启代码片段功能

一般的编程语言,例如Python,Perl等,可能会默认启用了模板功能的快速补齐,但是有些语言或者文件格式,也许会发现snippets无法启用。这时候就需要我们手动进行开启。
这是因为在Visual Studio默认配置中,没有开启Markdown文件中的补全与匹配,需要我们进行配置,打开settings.json文件(快捷键Ctrl + Shift + P后输入settings ,然后选择open settings (json)打开)

1
2
3
4
5
{
"[python]": {
"editor.formatOnType": true
},
}

添加Markdown 的自动补齐功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"[python]": {
"editor.formatOnType": true
},
"[markdown]": {
"editor.formatOnSave": true,
"editor.renderWhitespace": "all",
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
"editor.acceptSuggestionOnEnter": "on"
},
}

完成setting配置后,我们就可以在其他非默认配置中使用代码片段功能了。

代码块命名规范

为了更好,更系统的对代码块进行管理,相关代码块均基于以下规则进行命名3段氏命名
snippets_{编程语言}_{代码功能}

git 配置

-------------本文结束感谢您的阅读-------------