欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在VSCode中进行设置配置指南

最编程 2024-08-01 14:19:18
...

目录
  • 常用快捷键
  • 编译文件
    • 编译单文件
    • 编译多文件
  • 项目工程
  • json
    • 配置文件
    • 模拟命令行

 

由于国外网站下载速度极慢,因此采用国内镜像进行下载,来源:https://zhuanlan.zhihu.com/p/112215618
安装配置:https://www.cnblogs.com/lzpong/p/6145511.html

右键查看更多功能:包括格式化代码等操作

 

常用快捷键

功能 快捷键 功能 快捷键
转到文件/其它常用操作 Ctrl + P 关闭当前文件 Ctrl + w
打开命令面板 Ctrl + Shift + P 当前行上移/下移 Alt + Up/Down
变量统一重命名 F2 转到定义 F12
关闭侧边栏 Ctrl + B 格式化 Shift + Alt + F
跳转到行 Ctrl + G 打开新窗口 Ctrl + Shift + N
关闭窗口 Ctrl + Shift + W 新建文件 Ctrl + N
文件切换 Ctrl + Tab 整行向左缩进 Ctrl + [
整行向右缩进 Ctrl + ] 下方插入一行 Ctrl + Enter
上方插入一行 Shift + Ctrl + Enter 查找 Ctrl + F
查找替换 Ctrl + H 在整个文件夹中查找 Shift + Ctrl + F

 

Ctrl + P 窗口下还可以:

  • 直接输入文件名,跳转到文件
  • ? 列出当前可执行的动作
  • @ 跳转到变量或函数 (C-S o)
  • # 根据名字查找 (C t)
  • > 输入命令

 

编译文件

编译单文件

  • 可以直接在终端中用 g++ 进行编译运行
  • 也可以使用 VSCode 生成的 launch.json 和 tasks.json ,从而可以用快捷键 f5 进行编译调试

 

编译多文件

在终端中用 g++ -g 进行编译生成可执行文件后,编辑 launch.json ,然后可以用 f5 进行调试

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/main.exe",  //只需将 "/" 后的变量改为生成的可执行文件名即可
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\minGW64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            // "preLaunchTask": "C/C++: g++.exe 生成活动文件" //将这一行注释掉,从而不生成新文件
        }
    ]
}

 

项目工程

由于 CMake 在 VSCode 上运行似乎有一些问题,所以这里使用插件 C/C++ Project Generator

Ctrl + Shift + P 呼出命令行,输入 create C++ project 后选择文件夹即可直接建立工程;在 src 中放置 .cpp 文件,在 include 中放置 .h 头文件,在 lib 中放置库文件,output 中会存放编译得到的可执行文件;在头文件没有索引时,会有提示建立配置 json 即可

由此建立的工程具有 Makefile 文件,通过查看内容可以看出 make clean 仍然是清除输出的命令,可以借此学习 Makefile 文件的写法

make clean 问题处理 https://www.cnblogs.com/mrblug/p/13523089.html

注意:由于 make.exe 是在 cmd 中运行的,所以不能执行 shell 中的部分命令

# 这一句无法执行
clean:
	rm main *.o
	
# 使用 del 替换 rm 命令
clean:
	del main *.o

 

json

VSCode 中 launch.json 和 tasks.json 配置文件分别起到调试可执行文件、编译运行程序的作用

 

配置文件

launch.json 文件中配置调试过程

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            // fileDirname 表示需要调试的文件所在路径,后者表示文件名
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",							// cwd 等价于 cd ,这里表示进入调试文件所在目录
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            // 这一行表示在 launch 之前执行 tasks ,注意名称与 task 中的 label 一致
            "preLaunchTask": "C/C++: g++ 生成活动文件",			
            "miDebuggerPath": "/usr/bin/gdb"					// 这是 gdb 调试器所在目录
        }
    ]
}

 

task.json 文件用于配置编译环境

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",				// 这是命令的标签
            "command": "/usr/bin/g++",						// 这是 g++ 编译器位置
            // 这是编译的参数
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            // 编译选项,表示进入文件目录
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

 

模拟命令行

可以将命令行操作用 tasks.json 来进行操作

# 模拟以下命令行操作
cd build
cmake ..
make

实际上只需要分别实现每一个命令行,然后进行组合

{
    // 先进入 build 目录
	"options": {
        "cwd": "${fileDirname}/build"
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",	// 设置命令标签
            "command": "cmake",	// 命令
            "args": [
                ".."			// 命令参数
            ],
        },
        {
			"label": "make",	// 命令标签
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",	// 命令
            "args": []
        },
		{
            "label": "Build",	// 命令标签
            "dependsOn": [
                "cmake",		// 根据标签导入前两个命令
                "make"
            ]
        }
    ],
    "version": "2.0.0"
}

然后根据这一 task.json 调整 launch.json 中的文件路径

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            // 调整文件路径
            "program": "${fileDirname}/build/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",							// cwd 等价于 cd ,这里表示进入调试文件所在目录
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            // 调整在 Launch 之前调用的 Task 标签名
            "preLaunchTask": "Build",			
            "miDebuggerPath": "/usr/bin/gdb"					// 这是 gdb 调试器所在目录
        }
    ]
}

推荐阅读