vscode
launch.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
| { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\bin\\${fileBasenameNoExtension}.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "preLaunchTask": "build", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ] } ] }
|
tasks.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
| { "tasks": [ { "type": "shell", "label": "build", "command": "D:\\Coding\\mingw64\\bin\\gcc.exe", "args": [ "-g", "${workspaceFolder}/${fileBasename}", "-Wall", "-I", "/usr/include", "-L", "/usr/lib/x86_64-linux-gnu", "-l", "opencv_core", "-l", "opencv_highgui", "-o", "${fileDirname}\\bin\\${fileBasenameNoExtension}.out" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true } }, { "label": "cmakebuild", "type": "shell", "command": "cd build && cmake ../ && make", "args": [] } ], "version": "2.0.0" }
|
预定义变量解释
1 2 3 4 5 6 7 8 9 10
| ${workspaceFolder} : 表示当前workspace文件夹路径,如C:\Users\admin\Desktop\test ${workspaceRootFolderName} : 表示workspace的文件夹名,如test ${file} : 文件自身的绝对路径,如C:\Users\admin\Desktop\test\.vscode\launch.json ${relativeFile} : 文件在workspace中的路径,如.vscode\launch.json ${fileBasenameNoExtension} : 当前文件的文件名,不带后缀,如hello/launch ${fileBasename} : 当前文件的文件名,如 hello.cpp/launch.json等 ${fileDirname} : 文件所在的文件夹路径,也即C:\Users\admin\Desktop\test\.vscode ${fileExtname} : 当前文件的后缀,也即.json ${lineNumber} : 当前文件光标所在的行号 ${env:PATH} : 系统中的环境变量
|
用户代码片段
占位符
占位符是带有值的制表符,如 .将插入并选择占位符文本,以便可以轻松更改。说白了占位符${1:foo}就是在$1 的基础上,光标跳到$1 位置的同时会自动生成并选中 foo,同样按 Tab 键切换到$2 的位置。占位符可以嵌套,如 。${1:foo} ${1:another ${2:placeholder}}
选择
占位符可以作为有选择的值。语法是以逗号分隔的值的枚举,用竖线字符括起来,例如 。插入代码段并选择占位符时,选项将提示用户选取其中一个值。${1|one,two,three|}
变量
插入变量的值。如果未设置变量,则插入其默认值或空字符串。当变量未知(即未定义其名称)时,将插入变量的名称并将其转换为占位符。$name ${name:default}可以使用以下变量:
- TM_SELECTED_TEXT 当前选定的文本或空字符串
- TM_CURRENT_LINE 当前行的内容
- TM_CURRENT_WORD 光标下单词的内容或空字符串
- TM_LINE_INDEX 基于零索引的行号
- TM_LINE_NUMBER 基于一个索引的行号
- TM_FILENAME 当前文档的文件名
- TM_FILENAME_BASE 不带扩展名的当前文档的文件名 (比如这里你在用户代码片段中写了${TM_FILENAME_BASE},在自动生成的代码里就会在这个位置自动填充上你的文件的不含扩展名的文件名)
- TM_DIRECTORY 当前文档的目录
- TM_FILEPATH 当前文档的完整文件路径
- RELATIVE_FILEPATH 当前文档的相对(相对于打开的工作空间或文件夹)文件路径
- CLIPBOARD 剪贴板的内容
- WORKSPACE_NAME 打开的工作区或文件夹的名称
- WORKSPACE_FOLDER 打开的工作区或文件夹的路径
要插入当前日期和时间:
- CURRENT_YEAR 本年度
- CURRENT_YEAR_SHORT 本年度的最后两位数
- CURRENT_MONTH 以两位数字表示的月份(例如”02”)
- CURRENT_MONTH_NAME 月份的全名(例如”七月”)
- CURRENT_MONTH_NAME_SHORT 月份的短名称(例如”Jul”)
- CURRENT_DATE 以两位数字表示的月份中的某一天(例如”08”)
- CURRENT_DAY_NAME 日期的名称(例如”星期一”)
- CURRENT_DAY_NAME_SHORT 日期的短名称(例如”星期一”)
- CURRENT_HOUR24 小时制格式的当前小时
- CURRENT_MINUTE 当前分钟为两位数
- CURRENT_SECOND 当前第二位为两位数
- CURRENT_SECONDS_UNIX 自 Unix 纪元以来的秒数
对于插入随机值:
- RANDOM6 个随机的 Base-10 数字
- RANDOM_HEX6 个随机的 16 位基本数字
- UUIDA 版本 4 UUID