尝试代替source insight4
插件:
Bookmarks # 书签
Bracket Pair Colorizer # 括号配色
C/C++
C/C++ GUN global #完善函数跳转
Include Autocomplete # 提供头文件补全
Explorer Exclude #隐藏不用的文件夹
highlight-words #高亮
配置:
.vscode/c_cpp_properties.json :
“defines”:[ ] 配置全局宏定义
,
settings.json:
“search.exclude”: { } 搜索文件时过滤(true是过滤),区分大小写
,
设置
在设置中搜索,C_Cpp.errorSquiggles开启关闭语法检查。
网站:
搜索时过滤
,
C/C++格式(安装C/C++插件后)
- 找到clang-format.exe的绝对路径,如c:\Users\wqr57.vscode\extensions\ms-vscode.cpptools-0.18.1/bin/…/LLVM/bin/clang-format.exe;
- .clang-format文件放入项目最顶层的文件夹里;
- 设置搜索Clang_format_style,设置成file。
- 设置clang_format_path,设置成clang-format.exe文件的绝对路径
Language: Cpp
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
#AlignConsecutiveDeclarations: true
#AlignConsecutiveBitFields: true
AllowShortBlocksOnASingleLine: false
BinPackArguments: false
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
#KeepEmptyLinesAtTheStartOfBlocks: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: None
#BinPackArguments: true
BraceWrapping:
AfterCaseLabel: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: true
AfterStruct: false
AfterUnion: false
BeforeElse: true
#BeforeWhile: false
#IndentBraces: false
SplitEmptyFunction: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
ColumnLimit: 146
ContinuationIndentWidth: 4
#Cpp11BracedListStyle: true
DerivePointerAlignment: false
IndentCaseLabels: true
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
PointerAlignment: Right
SortIncludes: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
跳转定义
C/C++跳转不够快,可以用GUN global来完善跳转定义:(建议直接使用C/C++插件,用GUN global做不到悬停查看定义,经常会出现一个变量两个提示)
参考1
参考2
参考3
snippet
在file–preferences–User snippets–c.json上修改
"for": {
"prefix": "for ",
"body": [
"for ($0; ; ) {",
"",
"}",
],
},
"forn": {
"prefix": "forn",
"body": [
"for (int ${0:i} = 0;${0:i} < $1; ${0:i}++) {\n\n}",
],
},
"#ifndef": {
"prefix": "#inf",
"body": [
"#ifndef $0\n#define $0\n\n\n\n#endif"
],
},
"switch": {
"prefix": "switch ",
"body": [
"swtich ($0) {\n\tcase :\n\t\n\t\tbreak;\n\tdefault:\n\t\tbreak;\n}"
],
},
"typedef struct": {
"prefix": "tp st",
"body": [
"typedef struct {\n\t\n}$0;"
],
},
缩进为4个空格:
“editor.detectIndentation”: false,
“editor.tabSize”: 4, //vscode设置的缩进量
“editor.formatOnSave”: true, //保存时候自动格式化(自动格式)
,
给插件命令设置快捷键
进入设置快捷键页面,打开keybindings.json,添加:
{
"key": "快捷键",
"command": "命令",
},
keybindings.json:
{
"key": "ctrl+pageup",
"command": "-workbench.action.previousEditor"
},
{
"key": "ctrl+pageup",
"command": "-selectPrevPageSuggestion",
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
},
{
"key": "ctrl+pagedown",
"command": "editor.action.transformToLowercase"
},
{
"key": "ctrl+pageup",
"command": "editor.action.transformToUppercase"
},
{
"key": "ctrl+pagedown",
"command": "-workbench.action.nextEditor"
},
{
"key": "ctrl+pagedown",
"command": "-selectNextPageSuggestion",
"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
},
{
"key": "f8",
"command": "highlightwords.addHighlight",
},
{
"key": "f8",
"command": "-editor.action.marker.nextInFiles",
"when": "editorFocus"
},
插件命令快捷键
,
配合keil一键编译:
命令行编译keil的脚本:
import os
import threading
import sys
import time
runing = True
def readfile():
while (os.path.isfile('build_log.txt') != True):
time.sleep(0.5)
with open('build_log.txt', 'r', encoding='UTF-8') as f:
while runing:
line = f.readline(1000)
if line != '':
print(line)
time.sleep(0.1)
if __name__ == '__main__':
thread = threading.Thread(target=readfile)
thread.start()
cmd1 = 'C:\\Keil_v5\\UV4\\UV4.exe -j0 -b .\\...\\xxx.uvprojx的目录'
cmd2 = ' -o C:\\Users\\...\\build_log.txt(脚本目录,不能用.\\)'
code = os.system(cmd1 + cmd2)
time.sleep(4)
runing = False
thread.join()
#print("end")
os.remove("build_log.txt")
sys.exit(code)
命令行编译keil的bat:
set UV=C:\Keil_v5\UV4\UV4.exe
set UV_PRO_PATH=C:\Users\...\oversea.uvprojx
echo Init building ...
echo .>build_log.txt
echo %UV% -j0 -b %UV_PRO_PATH% -o %cd%\build_log.txt
:: -b编译, -r重新编译, -f可能是下载, 注意上一句去掉echo才是执行
::type build_log.txt
echo Done.
pause
在VSCODE一键执行脚本:
- ctrl+shift+P启动全局控制台,输入configure task
- 选择使用模板创建task.json文件,然后选Others,然后系统会在工作目录下生成一个.vscode/tasks.json文件
- 在文件添加一个task:(“tasks”[ ]里添加)
{
"label": "myrun",
"type": "shell",
"command": "py",
"args": [
"D:\\...\\脚本目录.py"
],
"presentation": {
//启动之前清理控制台输出
"clear": true
}
},
- 然后给任务绑定快捷键:
{
"key": "f5",
"command": "workbench.action.tasks.runTask",
"args": "myrun"
},
,
常用快捷键:
ctrl + p: 搜索文件
ctrl + t:全局搜索符号
ctrl + shift + o:搜索文件内符号
ctrl + K, ctrl + S: 设置快捷键
F1: 输入命令