vscode安装配置与应用技巧总结

安装vscode

VSCode下载链接: https://code.visualstudio.com/download/

比如 version=1.68.0

  • Windows 64 bit User installer
  • Linux 64 bit debian
  • Linux 64 bit rpm

安装vscode插件

推荐

  • C/C++:官方提供,必备的插件,提供C/C++支持,Intellisense(智能感知),debugging(调试),和code browsing(代码浏览)。
  • C/C++ Extension Pack:C++开发工具扩展支持。
  • C/C++ Snippets:提供一些常用的C/C++片段,如for(;;){},如果想要添加自己写的代码段可以点左下角齿轮->用户代码片段。
  • clang-format: 安装排名第一的xaver.clang-format, 代码风格格式化工具。
  • git graph:git版本控制,重要性不必多说,这个插件可以实现操作的GUI化,非常方便。
  • git blame: 在文件内显示文件每一处的修改记录。
  • Markdown Preview Github Styling:以github页面风格显示markdown文档。
  • Rainbow Brackets:成对的大括号标记成不同的颜色。
  • Bookmarks:为代码块添加标签<Ctrl-Alt-k>,对于阅读大型工程比较有用。
  • highlight-words:高亮选中关键词,点击设置->快捷键->搜索highlight toggle current并设置快捷键。
  • Python: Python支持,智能感知,调试,代码格式化等。
  • Remote-SSH:ssh连接远程主机,如同访问本地文件。

可选

  • Code Runner: 提供编译后程序的运行环境。
  • CSS Peek: html/css代码跳转工具。
  • Filter Lines: 根据关键字过滤log。
  • Include Autocomplete: 头文件自动补全。
  • Sublime Babel:代码高亮。
  • code counter: 代码统计分析工具。
  • Log File Highlighter:log过滤与高亮。
  • Android System Tools:Android 系统工具,bp文件语法高亮。

重新打开vscode,安装完毕就可以使用了,包括代码提示、补全等。

vscode通过ssh远程连接服务器

安装remote-ssh插件

打开vscode扩展商店,搜索Remote-SSH直接下载安装即可。

生成ed25519密钥,如果已经有的可以忽略

ssh-keygen -t ed25519 -C "your_email@example.com"

将ed25519公钥添加到远程主机

  • 如果远程主机没有~/.ssh/authorized_keys则先创建:
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  • 然后将公钥.ssh/id_ed25519.pub的内容追加到远程主机的~/.ssh/authorized_keys

.ssh/id_ed25519为私钥,不能对外公开,注意保密。
.ssh/id_ed25519.pub为公钥,可以对外公开。

  • 将远程主机的公钥认证开启;
    添加该行到~/.ssh/config文件:PubkeyAuthentication yes

配置ssh-config

在vscode打开控制面板(Windows按F1,linux按Ctrl-Shift-p)输入Open SSH Configuration File,
选择ssh配置文件,如C:\Users\yourname\.ssh\config;

Host ubuntu-2204HostName 192.168.56.101User jackIdentityFile C:\Users\yourname\.ssh\id_ed25519
  • Host 后写上远程主机的标签,便于自己识别,如ubuntu-2204;
  • HostName 后写上远程主机的实际ip地址,如192.168.56.101
  • User 后写上远程主机上的实际用户名,如jack
  • IdentityFile 后面写上本地ssh目录下的ssh key文件,如C:\Users\yourname\.ssh\id_ed25519

然后打开控制面板,输入Remote-SSH:Settings,设置Remote.SSH:Config File为刚刚设置的ssh配置文件,如C:\Users\yourname\.ssh\config

连接远程ssh

打开控制面板,输入Remote-SSH:Connect To Host...,然后选择远程主机的标签如ubuntu-2204即可连接。

访问远程文件夹

File,Open Folder...,输入路径即可访问。

在远程主机上离线安装vscode server

在连接远程主机时,vscode的remote ssh插件会自动在远程主机下载并安装对应版本的vscode server;
如果远程主机网络不畅可能导致下载和连接失败,可以使用本方法离线安装vscode server,以linux系统为例。

  1. 获取本地vscode的commit id值:
  • “Help”,
  • “About”,
  • “Copy”,

得到Commit的值,如e2816fe719a4026ffa1ee0189dc89bdfdbafb164

  1. 填入对应的commit值,下载对应的vscode server版本;
  • 下载URL: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable

${commit_id}替换为获取到的commit值。
如:https://update.code.visualstudio.com/commit:e2816fe719a4026ffa1ee0189dc89bdfdbafb164/server-linux-x64/stable

  1. 将下载的vscode-server-linux-x64.tar.gz上传在远程主机的$HOME/.vscode-server/bin文件夹中,并解压
mkdir -p ~/.vscode-server/bin
cd ~/.vscode-server/bin
tar -zxf vscode-server-linux-x64.tar.gz

结果为

~/.vscode-server/bin$ ls
vscode-server-linux-x64
  1. 在远程主机将解压之后的目录名更名为commit值。
mv vscode-server-linux-x64 ${commit_id}

注意${commit_id}替换为对应的Commit值。
结果显示为

~/.vscode-server/bin$ ls
97dec172d3256f8ca4bfb2143f3f76b503ca0534
~/.vscode-server/bin$
~/.vscode-server/bin$ ls 97dec172d3256f8ca4bfb2143f3f76b503ca0534/
bin         LICENSE  node_modules  package.json  server.sh
extensions  node     out           product.json
~/.vscode-server/bin$

vscode便可成功连接到远程主机并访问其文件。

vscode创建工作区

创建工作区

  1. FileAdd Folder to Workspace,不断的选择自己需要加入的文件夹到工作区;
  2. Save Workspace As... 选择一个位置,设置文件名。

加载工作区

  • FileOpen Workspace From File... 以后使用时可以直接选在工程文件load进来。

设置工作区

添加搜索排除目录或文件

  1. <Ctrl-Shift-p>>preferences: open settingssearch exclude 打开设置搜索排除项设置;
  2. 可以在Features,Search项下面添加Add Pattern,如**/*.log,**/out/**等。

vscode安装配置clang-format插件及使用

  1. 首先安装插件。在vscode扩展里搜索clang-format,安装排名第一的xaver.clang-format

  2. 确认clang-format可执行程序路径

  • windows用eveything查找一下clang-format.exe,

最新的扩展 c/c++ 里集成了 clang-format。 如: C:\Users\jack\.vscode\extensions\ms-vscode.cpptools-1.13.9-win32-x64\LLVM\bin\clang-format.exe

  • Linux用命令which clang-format查询clang-format的安装路径,如:/usr/bin/clang-format

如果没找到这个程序,走第3步。
如果已经有这个程序,走第4步。

  1. 安装真正的格式化工具clang-format
  • Linux系统安装,使用命令sudo apt install clang-format;
  • windows系统安装,这个工具集成在工具包 LLVM里,下载地址:https://github.com/llvm/llvm-project/releases
    如选择LLVM-14.0.6-win64.exe, 下载完成后不进行安装,解压这个exe文件,会得到clang-format.exe。把这个可执行文件复制到需要的地方就可以了。
  1. 把可执行程序的路径添加到 settings.json 文件里。
    如果要所有工程都有效,要配置到vscode用户目录里,不是工作目录里的,
  • windows目录是: C:\Users\jack\AppData\Roaming\Code\User\settings.json
  • Linux目录是 ~/.config/Code/User/settings.json
  1. 在配置文件里添加配置如下:
{// clang-format 扩展的配置"clang-format.style" : "file","clang-format.assumeFilename": "/home/user/.clang-format","clang-format.executable": "/usr/bin/clang-format","clang-format.fallbackStyle": "Google","editor.defaultFormatter": "xaver.clang-format"
}

如果是windows系统,修改可执行文件路径为实际路径,
如:"clang-format.executable": "C:\Users\jack\.vscode\extensions\ms-vscode.cpptools-1.13.9-win32-x64\LLVM\bin\clang-format.exe",

注意修改clang-format风格配置文件路径,
如:"clang-format.assumeFilename": "./.clang-format",
或:"clang-format.assumeFilename": "/home/user/.clang-format",
或:"clang-format.assumeFilename": "C:\Users\jack\.vscode\.clang-format",

如果只配置当前工程,可以将配置添加到当前的code-workspace文件

    "settings": {// clang-format 扩展的配置,覆盖用户的 `settings.json`// "clang-format.style" : "file:./.clang-format", //从指定配置文件读取格式化风格。"clang-format.style" : "file",// 依次从当前目录、工作目录、path变量,加载默认风格配置文件(.clang-format)。// 如果找不到则使用fallbackStyle, 没有fallbackStyle则默认LLVM,C++。"clang-format.assumeFilename": "./.clang-format", //使用工作区独立配置文件// "clang-format.assumeFilename": "/home/user/.clang-format", //绝对路径,用于全局统一配置"clang-format.executable": "/usr/bin/clang-format","clang-format.fallbackStyle": "Google","editor.defaultFormatter": "xaver.clang-format",// C/C++ 扩展的配置// "C_Cpp.formatting": "Default",}

可以同时在全局的settings.json和当前工程配置格式化配置文件,当前工程配置将覆盖全局配置。
因此可以在全局的settings.json中配置全局的.clang-format的绝对路径,如:"clang-format.assumeFilename": "/home/user/.clang-format",
然后在当前工程配置使用当前目录下的.clang-format,如:"clang-format.assumeFilename": "./.clang-format",

  1. 生成.clang-format 配置文件并修改自定义
clang-format --style=Google --dump-config > ./.clang-format

如下基于google的风格进行的定制

---
# https://clang.llvm.org/docs/ClangFormatStyleOptions.htmlBasedOnStyle:   LLVM
Language:        Cpp# this style configuration is based on google style configuration.
# The following configuration is different from the basic configuration.# 缩进宽度
IndentWidth:     4# 访问权限说明符(public/private等)的偏移
AccessModifierOffset: -4# # 开括号(开圆括号、尖括号、方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在开括号后换行)
# AlignAfterOpenBracket: Align# # 连续赋值时,对齐所有等号
# AlignConsecutiveAssignments: false# # 连续声明时,对齐所有声明的变量名
# AlignConsecutiveDeclarations: false# 反斜杆换行的对齐方式
# -- DontAlign - 不进行对齐
# -- Left - 反斜杠靠左对齐
# -- Right - 反斜杠靠右对齐
# AlignEscapedNewlines: Right# 二元、三元表达式的对齐方式(当表达式需要占用多行时)
# -- DontAlign - 不进行对齐
# -- Align - 从操作符开始对齐
# -- AlignAfterOperator - 从操作数开始对齐
AlignOperands:   true# # 是否对齐行尾注释
# AlignTrailingComments: true# # 函数声明的所有参数在放在下一行
# AllowAllParametersOfDeclarationOnNextLine: false# # 是否允许短的代码块放在同一行
# AllowShortBlocksOnASingleLine: false# # 短的case标签和语句放在同一行
# AllowShortCaseLabelsOnASingleLine: true# # 短的函数放在同一行
# -- None - 不把短的函数放在同一行
# -- InlineOnly - 只把类内的内联函数放在同一行,全局的空函数不放在同一行
# -- Empty - 只把空的函数放在同一行
# -- Inline - 把类内的内联函数放在同一行,全局的空函数不放在同一行
# -- All - 都允许放在同一行
AllowShortFunctionsOnASingleLine: InlineOnly# # 短的if语句保持在同一行
# AllowShortIfStatementsOnASingleLine: true# # 短的循环保持在同一行
# AllowShortLoopsOnASingleLine: true# # 总是在返回类型后换行: None, All, TopLevel(顶级函数,不包括在类中的函数),
# # AllDefinitions(所有的定义,不包括声明), TopLevelDefinitions(所有的顶级函数的定义)
# AlwaysBreakAfterReturnType: None# # 总是在多行string字面量前换行
# AlwaysBreakBeforeMultilineStrings: true# # 总是在template声明后换行
AlwaysBreakTemplateDeclarations: true# # 函数调用时,参数的放置规则
# -- false - 参数要么放在同一行,要么每个参数占用一行
# -- true - 不做强制要求
# BinPackArguments: true# 函数声明、定义时,参数的放置规则
# -- false - 参数要么放在同一行,要么每个参数占用一行
# -- true - 不做强制要求
# BinPackParameters: true# 大括号放置风格
# -- Attach - 大括号紧随前方内容,放在同一行
# -- Linux - 与 Attach 类似,除了 函数、命名空间、类定义 的大括号放在下一行
# -- Mozilla - 与 Attach 类似,除了枚举、函数、结构(class\struct\union)的大括号放在下一行
# -- Stroustrup - 与 Attach 类似,但函数定义前、catch前方、else前方的"{}"放在单独一行
# -- Allman - 总是换行
# -- Whitesmiths - 类似 Allman,但"{}"和内部的语句对齐到同样位置
# -- GNU - 总是换行,但在控制语句后的"{}"总是对齐到下一个位置
# -- WebKit - 与 Attach 类似,但在函数定义前换行
# -- Custom - 依赖 BraceWrapping
#   注:这里认为语句块也属于函数
BreakBeforeBraces: Custom# 大括号换行,只有当BreakBeforeBraces设置为Custom时才有效
BraceWrapping:# class定义后面AfterClass: true# 控制语句后面AfterControlStatement: false# enum定义后面AfterEnum: false# 函数定义后面AfterFunction: true# 命名空间定义后面AfterNamespace: true# ObjC定义后面AfterObjCDeclaration: false# struct定义后面AfterStruct: false# union定义后面AfterUnion: false# extern之后AfterExternBlock: true# catch之前BeforeCatch: false# else之前BeforeElse: false# 继续缩进大括号IndentBraces: false# 分离空函数# # 当空白函数的"{}"和函数名称不需要放在同一行时,是否拆分函数体SplitEmptyFunction: true# 分离空语句# # 当空白结构(class\struct\union)的"{}"需要放在单独的行时,是否拆分"{}"SplitEmptyRecord: true# 分离空命名空间# # 当空白的命名空间的"{}"需要放在单独的行时,是否拆分"{}"SplitEmptyNamespace: true# # 在二元运算符前换行: None(在操作符后换行), NonAssignment(在非赋值的操作符前换行), All(在操作符前换行)
BreakBeforeBinaryOperators: NonAssignment# BreakBeforeInheritanceComma: false# # 在三元运算符前换行
# 当三元表达式不能放在同一行时,是否在三元操作符前方换行
# -- true - 操作符位于新行的首部
# -- false - 操作符位于上一行的尾部
BreakBeforeTernaryOperators: true# BreakConstructorInitializersBeforeComma: false# # 构造函数初始化列表分割方式
# -- BeforeColon - 在冒号 ':' 前方分割,冒号位于行首,逗号','位于行尾
# -- BeforeComma - 在冒号和逗号前方分割,冒号和逗号都位于行首,并且对齐
# -- AfterColon - 在冒号和逗号后方分割,冒号和逗号位于行尾
BreakConstructorInitializers: BeforeColon# # 是否在每个java注解后方换行
# BreakAfterJavaFieldAnnotations: false# # 是否分割过长的字符串
# BreakStringLiterals: false# # 每行字符长度的限制,0表示没有限制
ColumnLimit:     100# # 用于匹配注释信息的正则表达式,被匹配的行不会做任何修改
# CommentPragmas:  '^ IWYU pragma:'
# 是否压缩紧接的命名空间
# -- true - 将紧跟的命名空间放在同一行
# -- false - 每个命名空间位于新的一行
CompactNamespaces: false# # 构造函数的初始化列表要么都在同一行,要么都各自一行
# -- true - 如果可能,初始化列表放在同一行;如果不满足长度选择,则每个单独放一行
# -- false - 初始化列表可以随意放置
# ConstructorInitializerAllOnOneLineOrOnePerLine: false# # 构造函数的初始化列表和基类集成列表的对齐宽度
ConstructorInitializerIndentWidth: 4# # 延续语句的对齐宽度
ContinuationIndentWidth: 4# # 去除C++11的列表初始化的大括号{后和}前的空格
Cpp11BracedListStyle: true# 是否自动分析指针的对齐方式
# -- true - 自动分析并使用指针的对齐方式,若无法分析,则使用 PointerAlignment
# -- false - 不自动分析
# DerivePointerAlignment: true# 是否禁用格式化
DisableFormat:   false
# ExperimentalAutoDetectBinPacking: false# 是否自动修正命名空间的结束注释
# -- true - 在短的命名空间尾部,自动添加或修改错误的命名空间结束注释
# -- false - 不自动修正
FixNamespaceComments: true# foreach 循环
ForEachMacros:- foreach- Q_FOREACH- BOOST_FOREACH# 多个 include 块(有空行分隔的include)排序时的分组规则
# -- Preserve - 保留原有的块分隔,各自排序
# -- Merge - 将所有的块视为同一个,然后进行排序
# -- Regroup - 将所有的块视为同一个进行排序,然后按照 IncludeCategories 的规则进行分组
IncludeBlocks:   Preserve# IncludeCategories:
#   - Regex:           '^<ext/.*\.h>'
#     Priority:        2
#   - Regex:           '^<.*\.h>'
#     Priority:        1
#   - Regex:           '^<.*'
#     Priority:        2
#   - Regex:           '.*'
#     Priority:        3
# IncludeIsMainRegex: '([-_](test|unittest))?$'# # 缩进case标签
# -- true - case 不与 switch 对齐
# -- false - case 和 switch 对齐
IndentCaseLabels: true# 预处理命令(#if\#ifdef\#endif等)的缩进规则
# -- None - 不进行缩进
# -- AfterHash - 在前导'#'后缩进,'#'放在最左侧,之后的语句参与缩进
# -- BeforeHash - 在前导'#'前进行缩进
IndentPPDirectives: AfterHash# # 函数返回类型换行时,缩进函数声明或函数定义的函数名
# IndentWrappedFunctionNames: false# JavaScript 中的字符串引号规则
# -- Leave - 保持原样
# -- Single - 全部使用单引号
# -- Double - 全部使用双引号
JavaScriptQuotes: Leave# 是否在 JavaScript 的 import/export 语句后换行
# JavaScriptWrapImports: true# # 保留在块开始处的空行
# -- true - 保留块起始的空行
# -- false - 删除块起始的空行
KeepEmptyLinesAtTheStartOfBlocks: true# 用于识别宏定义型块起始的正则表达式
# MacroBlockBegin: ''# 用于识别宏定义型块结束的正则表达式
# MacroBlockEnd:   ''# # 连续空行的最大数量
MaxEmptyLinesToKeep: 1# # 命名空间内部的缩进规则
# -- None - 都不缩进
# -- Inner - 只缩进嵌套的命名空间内容
# -- All - 缩进所有命名空间内容
NamespaceIndentation: Inner# Objective-C 相关配置
# ObjCBlockIndentWidth: 2
# ObjCSpaceAfterProperty: false
# ObjCSpaceBeforeProtocolList: false
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 1
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakString: 1000
# PenaltyExcessCharacter: 1000000
# PenaltyReturnTypeOnItsOwnLine: 200# # 指针和引用(*和&)的对齐规则
# -- Left - * 靠近左侧
# -- Right - * 靠近右侧
# -- Middle - * 放在中间
# NOTE : 在 SpaceAroundPointerQualifiers 为 Default,
#    且 DerivePointerAlignment 失效后启用
PointerAlignment: Right# RawStringFormats:
#   - Delimiter:       pb
#     Language:        TextProto
#     BasedOnStyle:    google# # 重新排版注释
ReflowComments:  false# # 重新排序#include
# -- Never - 不进行排序
# -- CaseSensitive - 排序时大小写敏感
# -- CaseInsensitive - 排序时大小写不敏感
SortIncludes:    false# java 中静态 import 的排序规则
# -- Before - 静态放在非静态前方
# -- After - 静态放在非静态后方
# SortJavaStaticImport: Before# # 重新排序using声明
SortUsingDeclarations: false# # 在C风格类型转换后添加空格
SpaceAfterCStyleCast: false# # 在Template关键字后面添加空格
SpaceAfterTemplateKeyword: true# # 在赋值运算符之前添加空格
SpaceBeforeAssignmentOperators: true# # 在 C++11 的初始化列表前加空格
# SpaceBeforeCpp11BracedList: true# 在构造函数的初始化冒号":"前加空格
# SpaceBeforeCtorInitializerColon: true# 在构造函数的继承冒号":"前加空格
# SpaceBeforeInheritanceColon: true# 小括号"()"前加空格的规则
# -- Never - 从不加空格
# -- ControlStatements - 只在控制语句(for/if/while...)时加空格
# -- ControlStatementsExceptForEachMacros - 类型 ControlStatements,只是不再 ForEach 后加空格
# -- Always - 总是添加空格
# -- NonEmptyParentheses - 类似 Always,只是不再空白括号前加空格
SpaceBeforeParens: ControlStatements# 在 for 循环的冒号":"前加空格
# SpaceBeforeRangeBasedForLoopColon: true# # 在空白的小括号"()"中添加空格
SpaceInEmptyParentheses: false# # 在行尾的注释前添加的空格数(只适用于//)
SpacesBeforeTrailingComments: 1# # 在尖括号的"<"后,和">"前添加空格
SpacesInAngles:  false# # 在容器(ObjC和JavaScript的数组和字典等)字面量中添加空格
SpacesInContainerLiterals: true# # 在C风格类型转换的括号中添加空格
SpacesInCStyleCastParentheses: false# # 在圆括号的"("后,和")"前添加空格
SpacesInParentheses: false# 在中括号中加空格
# 当中括号内没有数据时,不受本规则影响(如空白的lambda 捕获表、不定长度的数组声明)
SpacesInSquareBrackets: false# 语言标准: Cpp03, Cpp11, Auto
Standard: Auto# # tab宽度
TabWidth: 4# # 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Always
UseTab: Never
---

可以将.clang-format文件放置在当前工作目录,或父目录,仅供当前项目使用。
也可以将.clang-format文件放置在用户宿主目录,在配置文件中使用绝对路径,供所有项目使用。

  1. 格式化代码
  • 在代码页面按<Ctrl-Shift-f>,选择使用…格式化代码(Format Document With...),选择Clang-Format
  • 全选代码,鼠标右键,使用…格式化代码(Format Document With...),选择Clang-Format

vscode常用的快捷键

执行命令

  • <Ctrl-Shift-p> 查找并执行命令或插件(>提示符,可以只输入每个单词的前几个字符);

编辑器切换

  • <Alt-数字> 切换到对应索引的编辑器页;

查找

文件查找

  • <Ctrl-p> 文件查找;

    • 追加 > 查找并执行命令或插件,等价于<Ctrl-Shift-p>
    • 追加 # 项目内查找符号,等价于<Ctrl-t>
    • 追加 : 跳转到对应行号,等价于<Ctrl-g>
    • 追加 @ 当前文件内查找符号,等价于<Ctrl-Shift-o>

字符串查找(包括符号)

  • <Ctrl-Shift-F> 全局搜索选中字符串或手动输入字符串(注意可能会与输入法快捷键冲突);

符号查找

  • <Ctrl-t> 项目内查找符号(#提示符);
  • <Ctrl-Shift-o> 当前文件内查找符号(@提示符),会自动显示备选符号列表;

符号跳转

查看定义

  • <F12>Ctrl-单击 符号名 跳转到符号定义;
  • <Alt-F12> 窥视符号定义而不跳转(Peek definition);

查看引用

  • <Shift-F12> 悬浮窗显示符号所有引用;
  • <Shift-Alt-F12> 侧边显示符号所有引用;
    • <F4> 跳转到符号下一个引用;
    • <Shift-F4> 跳转到符号上一个引用;

前进后退

  • <Alt-左右方向键> 跳转后跳回;
  • <Ctrl-Alt--> 后退;
  • <Ctrl-Shift--> 前进;

替换

字符串替换

  • <Ctrl-F2> 同时修改当前文件中所有匹配的字符串;
  • <F2> 方法重命名,比如选中后按F2,输入新的名字,回车;会发现所有的文件都修改过了;

文件名修改

  • <Ctrl-Shift-e> 打开资源管理器窗口;选中需要重命名的文件,<F2>,输入新的名字,回车;

当前文件内字符串查找替换

  • <Ctrl-F> 当前文件内查找,交互式查看;
  • <Ctrl-H> 当前文件内查找,交互式替换;

其他跳转

  • <F8> 当有多个错误时可以按F8逐个跳转跳转到下一个Error或Warning;

文档比较

  • 在资源管理器窗口,选择文件1,右键Select for compare,然后再选择文件2,右键Compare with selected
  • 在资源管理器窗口,选择两个文件,右键Compare selected

编辑器控制

  • <Ctrl-\> 当前编辑器页左右分屏显示在两个编辑器页;
  • <Ctrl-Alt-单击> 将单击符号的定义显示在分屏页中;
  • <Ctrl-w> 关闭当前编辑器页;

工作区视图管理

侧边栏控制

  • <Ctrl-b> 打开关闭侧边栏;
  • <Ctrl-Shift-e> 打开资源管理器窗口(当前焦点不能在编辑器);
  • <Ctrl-Shit+x> 打开插件窗口(当前焦点不能在编辑器);

底部终端窗口管理

  • <Ctrl-j> 打开、关闭底部终端窗口;

vscode常用命令

显示所有函数方法

  • <Ctrl-Shift-O> 显示在顶部,不方便查看。
  • <Ctrl-Shift-p>>View: Quick Open View大纲(outline) 显示大纲,在编辑器左下角显示,方便查看。

打开设置

<Ctrl-Shift-p>>preferences: open settings

打开快捷键设置窗口

  • <Ctrl-Shift-p>>preferences open keyboard shortcuts
  • <Ctrl-k Ctrl-s> 打开快捷键设置窗口;与上述方法等效。

关闭上传用户数据

<Ctrl-Shift-p>>preferences open settingstelemetry leveloff 关闭上传用户数据给微软。

解决代码跳转慢的问题

  1. 安装插件C/C++ GNU Global
  2. 安装global
  • linux命令安装globalsudo apt install global
  • windows侧直接下载gnu global工具并设置环境变量。
  1. 使用命令which global查看global的安装路径;

/usr/bin/globalC:\\global\\global.exe

  1. <Ctrl-Shift-p>, >preferences open settings(JSON)打开配置文件;
  2. 添加该行到配置文件中;
"gnuGlobal.globalExecutable": "/usr/bin/global",

添加后的linux侧配置文件~/.config/Code/User/settings.json,示例如下:

{"editor.fontSize": 16,"telemetry.telemetryLevel": "off","[cpp]": {"editor.defaultFormatter": "ms-vscode.cpptools"},"gnuGlobal.globalExecutable": "/usr/bin/global","search.exclude": {"**/*.log": true,"**/out/": true}
}

设置TAB自动转为空格

  1. <Ctrl-Shift-p>>preferences open settings 打开设置窗口;
  2. 设置Tab Size;
  3. 勾选Insert Spaces;

vscode安装配置与应用技巧总结相关推荐

  1. vscode怎么运行android项目,windows + flutter +android+ vscode 安装配置运行流程(详细版本)...

    flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...

  2. 使用 vscode 安装配置 clang-format(代码格式化)

    目前,网上能找到的配置教程都是乱教的.他们以C++为语言讲配置,其实clang-format默认就是C++.所以他们在配置时,即是错了.也会以默认C++格式化,也不会提示配置错误.结果他们还不知道他们 ...

  3. VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

    前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮.代码自动补全(又称 IntelliSense).代码重构.查看定义功能,并且内置了命令行工具和 Git 版 ...

  4. VsCode 安装配置 Rust

    下载 rustup-init 配置环境变量 CARGO_HOME = E:\Soft\Rust\.cargo RUSTUP_HOME = E:\Soft\Rust\.rustup RUSTUP_UPD ...

  5. hadoop服务器系统设置win10,win10系统hadoop安装配置的设置技巧

    win10系统使用久了,好多网友反馈说关于对win10系统hadoop安装配置设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统hadoop安装配置进行设置,有什么好的办法去设置 ...

  6. VSCode全套配置C++环境流程(完全卸载+C盘插件搬家+json配置文件+闪退问题+中文乱码问题)

    目录 前言 卸载 下载VSCode 避免VSCode下载的插件强占C盘空间 配置C++环境 下载MingGW 配置系统环境变量 下载C++插件 创建VSCode有效工作区 VSCode闪退问题 分离e ...

  7. OpenGL vscode 安装与配置

    OpenGL vscode 安装与配置 一.在vscode中配置好C++的环境 这个看下网上的教程 二.下载cmake CMake 下载好后点击安装,安装过程中选择add path to all us ...

  8. 在github上保存vscode的配置(后续重新安装vscode时,可以十分方便地从github上下载安装这个保存的配置)...

    1 安装拓展 Settings Sync 在 VSCode 拓展中搜索 Settings Sync 并安装,安装完成后,重启 2 设置 Github Person Access Token 进入这个页 ...

  9. 关于VSCode安装 python 语法检测器插件 pylint 配置(Mac)

    1.安装python插件 2.安装pylint 语法检测器 pip3 install pylint # 可以用下面的命令查看pylint的安装位置 which pylint # /usr/local/ ...

最新文章

  1. C# in depth 阅读笔记-- 委托
  2. Bitlocker and BitLocker To Go
  3. 新的自定义控件:TaskProgressView
  4. Nginx 500错误总结
  5. 如何使用TunesKit AceMovi Video Editor Mac在视频中添加贴纸
  6. [ ZJOI 2006 ] Trouble
  7. Wireshark使用教程用户手册
  8. 梦幻西游玩家最多的服务器,都说你是《梦幻西游》老玩家,这5个著名服务器你知道几个?...
  9. 迅捷路由连接服务器未响应,fast迅捷路由器设置:连上无线信号上不了网,怎么办?...
  10. 代码审计利器-RIPS实践
  11. 练习6:多表关联查询、嵌套子查询
  12. 以太坊数据库RocksDB报错:org.rocksdb.RocksDBException:Failed to create dir
  13. 【高等数学笔记】证明:闭包一定是闭集
  14. 【转】Ogitor中Gizmo的绘制技巧 - 战魂小筑 - C++博客
  15. 基于JAVA的类与对象做出的英雄打怪兽程序
  16. 戏说领域驱动设计(十二)——服务
  17. 如何批量生成食品商品条码
  18. CREO1——CREO 2.0画沉头孔
  19. 驱动人生8可提供Win11专用的intel网卡驱动
  20. ppt扇形图怎么显示数据_PPT中如何用半圆型饼图体现数据百分比

热门文章

  1. 2023美赛赛题思路分析
  2. 替换window.showModalDialog 已解决!!!
  3. C语言编程图书销售系统,C语言图书销售的管理系统.doc
  4. 软件工程设计模式——OCP与DIP
  5. [面经]阿里游戏一面的算法题
  6. 如何让文本超出 部分/文本框 显示省略号
  7. 使用Glade和libGlade设计Gtk+图形界面
  8. linux 批量建数字目录,关于linux:Bash技巧可以批量在多个目录名前面加上数字的Shell脚本...
  9. 常见三维文件格式之IGES
  10. Python爬虫_某宝网案例