文章目录

  • SSH-Remote
  • 环境配置
  • Linux
  • Window Vscode
  • 远程开发与调试
  • 工作区
  • 创建工作区
  • 添加文件到工作区
  • 开发
  • 添加头文件
  • 添加任务配置(task)
  • 添加运行配置(launch)
  • 调试
  • 调试环境配置
  • 启动调试
  • 调试界面介绍
  • vscode快捷按钮配置
  • vscode显示函数大纲
  • 编辑器与窗口管理
  • 光标相关
  • 查找替换
  • 显示相关


SSH-Remote
环境配置
Linux
  • 安装ssh-server, 并配置ssh配置文件
  • 同时需要C/C++相关开发工具: gcc gdb make cmake
  • 配置vscode包含的系统源文件和头文件路径, 在/build/glibc-5mDdLG/glibc-2.xxx路径下
  • 参考
  • glibc源文件: http://ftp.gnu.org/gnu/glibc/
Window Vscode
  • 安装插件 Remote-SSHRemote-SSH editing Configuration file
  • 配置ssh用户, 在左侧菜单栏中选择远程资源管理器添加一个sss config

配置文件内容如下

vscode 远程 python 解释器 vscode远程配置_文件路径

Host为主机地址, 可以为IP地址/域名

HostName为主机名称, 可自行定义

User为ssh的登录用户

登录终端

  • Ctrl + Shift + · 创建新的终端
  • vscode 远程 python 解释器 vscode远程配置_文件路径_02

  • ssh免输入密码登录参考
远程开发与调试
工作区
创建工作区

选择 [文件] -> [将工作区另存为]

vscode 远程 python 解释器 vscode远程配置_文件路径_03

添加文件到工作区

选择 [文件] -> [将文件夹添加到工作区]

vscode 远程 python 解释器 vscode远程配置_工作区_04

开发
添加头文件

两种方式

  • 针对当前工作区添加头文件路径, 在c_cpp_properties中添加路径, 可以实现单击头文件时可以跳转。

c_cpp_properties.json

{
 "configurations":[
   {
      ...
      "includePath":[
       "${workspaceFolder}/**"
       "D:\\work\\00Tools\\boost\\include\\**"
       "/usr/include"
       #添加头文件路径
      ]
      ...
   }  
 ],
}
  • 添加全局头文件路径(分为远程开发环境 和 本地开发环境)

选择 [设置] -> 输入关键词include path -> 选择**[System Include Path]** -> 编辑settings.json内容

{
    "C_Cpp.default.systemIncludePath": [
        "F:/linux_include/x86_64-linux-gnu/**",
        "F:/linux_include", 
        "F:/linux_include/**",
		#以上为本地开发环境的头文件路径, 而且被设置为全局的头文件路径
        "/usr/include"
        #以上为远程开发环境的头文件路径, 如果没有配置, 则使用全局的头文件路径
    ],
	......
}
添加任务配置(task)
#这种配置为通过执行makefile进行编译
#适用于工程编译
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "redis-build",
            //很重要,任务的名字叫redis-build,注意是大小写区分的,等会在launch中调用这个task(PreLaunchTask中指定)
			"command": "/usr/bin/make",//shell命令
            "args": [
			],
			"options": {
				"cwd": "${workspaceFolder}/redis-6.0.3"//执行路径
			},
			"problemMatcher": [
				"$gcc" //使用gcc捕获错误
			],
			"group": "build",//属于哪个任务组 tasks
			"detail": ""
		}
	]
}
#这种配置为通过直接执行gcc命令进行编译
#适用于单个目录下一个/多个源文件的编译
#从网上找到资料
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",  // 任务的名字叫Build,注意是大小写区分的,等会在launch中调用这个名字
            "type": "shell",  // 任务执行的是shell命令
            "command": "g++", // 命令是g++
            "args": [
                "'-Wall'",
                "'-std=c++17'",  //使用c++17标准编译
                "'${file}'", //当前文件名
                "-o", //对象名,不进行编译优化
                "'${fileBasenameNoExtension}'",  //当前文件名
            ],
          // 所以以上部分,就是在shell中执行(假设文件名为filename.cpp)
          // g++ filename.cpp -o filename.exe
            "group": { 
                "kind": "build",
                "isDefault": true   
                // 任务分组,因为是tasks而不是task,意味着可以连着执行很多任务
                // 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行
                // 当然,如果任务分组是test,你就可以用run test task来运行 
            },
            "problemMatcher": [
                "$gcc" // 使用gcc捕获错误
            ],
        }
    ]
}
添加运行配置(launch)
#自己编写的launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "redis启动",
            "type": "cppdbg",
            "request": "launch",
			"preLaunchTask": "redis-build",  
            //在launch之前运行的任务名,这个名字一定要跟tasks.json中的任务名字大小写一致  
            "program": "${workspaceFolder}/redis-6.0.3/src/redis-server",//可执行程序
            "args": ["redis.conf"],//输入参数argc
            "stopAtEntry": false,//选为true则会在打开控制台后停滞,暂时不执行程序
            "cwd": "${workspaceFolder}/redis-6.0.3",//执行路径
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",//调试器类型
            "miDebuggerPath": "/usr/bin/gdb"//调试器路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        }
    ]
}

#网上的
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", //这个应该是F1中出现的名字
            "preLaunchTask": "Build",  //在launch之前运行的任务名,这个名字一定要跟tasks.json中的任务名字大小写一致
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", 
            //需要运行的是当前打开文件的目录中,名字和当前文件相同,但扩展名为exe的程序
            "args": [],
            "stopAtEntry": false, // 选为true则会在打开控制台后停滞,暂时不执行程序
            "cwd": "${workspaceFolder}", // 当前工作路径:当前文件所在的工作空间
            "environment": [],
            "externalConsole": true,  // 是否使用外部控制台,选false的话,我的vscode会出现错误
            "MIMode": "gdb",
            "miDebuggerPath": "c:/MinGW/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }]
}
调试
调试环境配置
  • 远程环境需要安装gdb
启动调试

vscode 远程 python 解释器 vscode远程配置_文件路径_05

调试界面介绍

vscode 远程 python 解释器 vscode远程配置_ssh_06

vscode快捷按钮配置
vscode显示函数大纲
  • 方法1: Shift + Ctrl + O(在顶部显示, 不方便查看)
  • 方法2: 显示大纲(在编辑器左下角显示, 方便查看)
  • 配置方法: Shift+Ctrl+P -> View: Quick Open View -> 大纲
编辑器与窗口管理
新建文件: Ctrl + N
文件之间切换: Ctrl + Tab
打开一个新的VSCode编辑器: Ctrl+Shift+N
关闭当前的VSCode编辑器: Ctrl+Shift+W
光标相关
移动到行首: Home
移动到行尾: End
移动到文件结尾: Ctrl+End
移动到文件开头: Ctrl+Home
移动到定义处: F12
查看定义处缩略图: Alt+F12
移动到引用处: Shift+F12
回退上一个光标操作: Ctrl+U
撤销上一步操作: Ctrl+Z
查找替换
查找: Ctrl+F
查找替换: Ctrl+H
显示相关
全屏显示: F11
放大/缩小: Ctrl+ +/-
侧边栏显示/隐藏: Ctrl+B
显示资源管理器: Ctrl+Shift+E
显示搜索: Ctrl+Shift+F
显示Debug: Ctrl+Shift+D
显示Output: Ctrl+Shift+U