Linux环境下的VScode使用教程

2023-11-20

前言

(1)对于学习本文需要先有自行安装好VMware,对VMware有简单的了解。

(2)对于绝大多数使用Linux的人而言,经常在Windows环境下使用source insight进行编译程序,然后利用FileZilla将Windows的文件的文件上传到Ubuntu,或者是使用Samba将Windows与Ubuntu共享一个文件夹。

(3)以上操作都有一个问题,就是编写程序都是在Windows环境下进行,Linux环境中进行编译,这样就需要总是换操作环境,很麻烦。于是我推荐使用VScode,这样就可以直接在Linux环境下编写程序了,很方便。

(4)关于推荐使用VScode的原因不仅仅只有他支持在Linux环境下编写程序,他功能及其强大,source insight拥有的能力他都有,source insight没有的他也有。最最最重要的一点在于,VScode是免费的,而source insight还需要付费(或者破解)。

(5)关于VScode的Linux环境安装,我建议下载韦东山老师的虚拟机文件,他哪个环境下的东西都帮我们配置好了。

        韦东山老师视频教程韦东山老师资料获取网址

(6)如果坚持想自己搭建Linux环境下的VScode,可以观看正点原子的VScode安装教程。(个人不是特别建议,废话太多了)

        VScode官网下载正点原子Linux教程视频

快捷键

指令合集

(1)本人是使用的韦东山老师配置的环境,所以只是教授一些常用的操作。

(2)

输入文件名打开文件 : ctr1 + P
跳到某行: Ctr1 +G + 行号
打开文件并跳到某行: ctrl + p 文件名:行号
列出文件里的函数 : ctrl + shift + o,可以输入函数名跳转
函数/变量跳转: 按住ctr1同时使用鼠标左键点击、F12
前进: Ctrl + shift + -
后退: Ctrl + Alt + -
列出引用 : shift + F12
查找所有引用:Alt + shift + F12
切换侧边栏展示/隐藏: Ctrl + B
打开命令菜单: Ctrl + shift + P
手动触发建议: ctr1 + Space
手动触发参数提示: ctr1 + shift + Space
打开/隐藏终端: Ctrl +(Tab上方的那个键)
重命名符号: F2
当前配置调试: F5
上/下滚编辑器: Ctrl + 向上按键↑/向下按键↓
搜索/替换 : Ctrl + F/H
高亮文字:shift + alt + Z
取消高亮: shift + alt + a

常用指令演示

打开指定文件

我们打开一个工程之后,需要找到对应的文件,一个一个找太麻烦了。所以我们可以按Ctrl+P——>输入文件名——>回车

跳转到指定行号

因为在Linux开发中,一个.c文件可能有几百上千行代码。这样我们需要跳转到指定行号,用鼠标滑动太麻烦了。于是我们可以输入Ctrl+G——>输入行号即可自动跳转

查看函数

(1)有时候,我们看到一个函数,想知道他的内部实现,只需要将鼠标靠近这个函数即可。

(2)但是有时候,我就是想跳转到实现这个函数的文件里面。怎么办呢?很简单,按住Ctrl+鼠标点击这个函数(或者鼠标点击这个函数,按下F12)。

查找所有引用

我们阅读源码的时候,可能会想查看某一个函数被那些程序所引用。那么可以选中这个函数+Alt + shift + F12

打开/隐藏中断 

(1)VScode强大在于,我们可以不离开这个工具,就可以使用命令行。按Ctrl +(Tab上方的那个键)

 (2)在VScode中,我们不但可以打开一个命令行,还可以同时打开多个。

(3)如果我们现在只想要一个命令行了,就可以选中命令行,点击删除。

(4)如果此时我不想看命令行了,可以点击X即可 

如何修改快捷键

打开快捷键修改界面

(1)有时候,有些默认命令行我们不喜欢,我们可以自定义快捷键。

(2)如果是英文操作界面如下。

(3)如果是增加了中文插件,是中文的,点击位置也是一样的。文件——>首选项——>键盘快捷键方式。

 修改前进/后退快捷键

因为VScode默认的前进/后退快捷键很反人类,不易于理解。所以在此我们需要修改

注释

选中多行——>Ctrl+/

创建工作区

(1)找到Linux内核目录

  

(2)将Linux内核目录设置为工作区

 

 (3)将指定文件加入工作区

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux环境下的VScode使用教程 的相关文章

  • 有没有办法使用 perf 工具查找流程中各个功能的性能?

    我正在尝试在流程中实现各个功能的性能 我该如何使用 perf 工具来做到这一点 还有其他工具吗 例如 假设 main 函数调用函数 A B C 我想分别获得主要功能以及功能 A B C 的性能 有没有一个很好的文档来了解 perf 源代码
  • msgget() 和 mq_open 之间的区别

    我阅读了有关消息队列操作的信息 例如 msgget msgsnd 和 msgrcv 但是当我在堆栈溢出上搜索消息队列相关问题时 我发现还有另一组消息队列操作 例如 mq open mq send mq receive 谁能告诉我这两种类型的
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 如何在 Raspberry Pi 上安装 PhantomJS 以便与 Python Selenium 一起使用?

    我想使用运行 Python 脚本Selenium WebDriver with PhantomJS作为我的无头浏览器树莓派运行 Raspbian 我最初在 OS X 中编写了该脚本 它运行良好 但在尝试让它在树莓派上工作时 我遇到了问题 当
  • fopen() 在 Linux 上创建文件失败

    我正在尝试通过创建一个文件fopen 如下 但不创建该文件并让我 Can t create file P S 我在 Linux Ubuntu 上使用 LAMP 服务器 在创建该文件之前我已经尝试过以下命令 sudo chmod R 755
  • 如何在Linux中使用C或shell检查密码?

    我有一个用 C 编写的程序 运行在嵌入式 Linux 上 有时它想检查系统用户的密码 如果我能得到地穴盐 etc 密码 我可以使用 crypt 检查用户密码的正确性 有没有shell脚本可以帮助我检查密码 比如check passwd用户名
  • pctl(PR_SET_PDEATHSIG) 竞争条件

    据我了解 当父进程死亡时终止子进程的最佳方法是通过prctl PR SET PDEATHSIG 至少在 Linux 上 父进程退出后如何让子进程终止 https stackoverflow com questions 284325 how
  • Boost 更新失败,现在不确定我拥有哪个版本

    在 Ubuntu 22 04 上运行此命令以获得 Boost 1 82 sudo add apt repository ppa mhier libboost latest sudo apt update sudo apt install l
  • 如何将回车符作为字符添加到文件中?

    我想要一个像这样的字符串 blablbabla
  • 更改grep命令的分隔符

    我在用grep检测 a href xxxx something here a 当链接在输入中分成两行时 这不起作用 我想 grep 检查直到它检测到但现在它只是将输入输入到 grep 中 直到检测到新行为止 所以如果输入是这样的 a hre
  • 为什么我们可以将 sockaddr 转换为 sockaddr_in

    我明白为什么强制转换很有用sockaddr to sockaddr in 但我不明白这怎么可能 据我所知 它们的大小相同sockaddr in添加了sin zero使其大小相同 我想知道编译器如何知道从哪里获取信息sockaddr in如果
  • 以非 root 用户身份在 UserData 中运行命令

    我正在尝试使用 EC2 UserData 脚本安装气流 我需要使用非 root 用户 ec2 user 运行一些命令 请参阅下面的脚本 UserData Fn Base64 Sub bin bash set xe Install GCC y
  • `/dev/urandom` 适合模拟目的吗?

    似乎在类 Unix 系统中使用纯 C fread from dev urandom是提取高质量随机字节的最简单方法 我需要运行一个每秒需要大约 10k 32 位随机数的模拟 并且可能会运行几天 是 dev urandom可以用于此目的吗 当
  • 调试严重的 SIGILL 崩溃:文本段损坏

    我们的系统是基于 PowerPC 的运行 Linux 的嵌入式系统 我们遇到了随机的 SIGILL 崩溃 这种情况在各种应用程序中都会出现 崩溃的根本原因是将要执行的指令归零 这表明内存中的文本段已损坏 由于文本段是以只读方式加载的 因此应
  • x86-64 Linux 中不再允许使用 32 位绝对地址?

    64 位 Linux 默认使用小内存模型 将所有代码和静态数据置于 2GB 地址限制以下 这确保您可以使用 32 位绝对地址 旧版本的 gcc 对静态数组使用 32 位绝对地址 以便节省相对地址计算的额外指令 然而 这不再有效 如果我尝试在
  • 在 Ubuntu 12.04 中打开 eclipse juno 并出现错误“No more handles ...”

    从今天开始 每次我打开 Eclipse 时 都会弹出一个标题为 出现问题 的消息框 内容如下 不再处理 未知的 Mozilla 路径 未设置 MOZILLA FIVE HOME 可能的参数 0 1 2 3 不再有句柄 未知的 Mozilla
  • mod_fcgid + PHP + apache 锁定

    我正在运行一个相当典型的 LAMP 堆栈 其中 PHP 通过 mod fcgid 运行 考虑到服务器收到的流量 我认为服务器处于 高负载 状态 存在一个间歇性问题 当访问依赖 PHP 的站点时 Apache 报告所有连接都处于 正在发送内容
  • 如何在命名管道 (mkfifo) 上执行非阻塞 fopen?

    如果我有一个程序使用 mkfifo 创建并尝试打开命名管道 如何在不阻塞的情况下打开管道进行读取或写入 具体来说 我正在编写一个 C 程序 它可以在有或没有 GUI 的情况下运行 用 Java 编写 在 C 程序中 我使用 mkfifo 成
  • 从该共享库中查找加载的共享库的位置?

    从共享库中的函数 在正在运行的进程 用 C 编写 内 我如何发现该共享库是从哪里加载的 我找到的所有答案都涉及使用诸如ldd在命令行中 或者通过查看 proc self maps 在 Win32 上 我只需使用GetModuleFileNa
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主

随机推荐

  • python人脸识别(转载)

    源码出处 http www cnblogs com AdaminXie 该项目笔记是基于下面博客的摘抄 Python 3 利用 Dlib 实现摄像头实时人脸识别 coneypo 博客园 cnblogs com Python 3 利用 Dli
  • maven 打包(zip)

    Main下添加文件 下添加assembly package xml
  • 免费接口API

    天气接口 气象局接口 http m weather com cn data 101010100 html 解析 用例 音乐接口 虾米接口 http kuang xiami com app nineteen search key 歌曲名称 d
  • 网页 序列号 逆向linux,逆向序列号生成算法(一)

    对逆向工程一直很感兴趣 工作之余自己也研究一下 好久没有练手了 OllyDBG的使用都感觉生疏了 晚上抽空先去补了补OllyDBG的使用方法 然后看到一个叫做CycleCrackMe 的序列号保护练手程序 如图1 刚好是OllyDBG入门文
  • GGally与pairs相关关系图_史上最全(二)

    作者 李誉辉 四川大学在读研究生 接上一篇 GGally与pairs相关关系图 史上最全 一 2 4 wrap 封装 其它需要指定到geom xxx 中的参数 可以通过wrap 传递给lower upper 或diag 语法 1wrap f
  • 【Pytorch with fastai】第 2 章:从模型到生产

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • MySQL常见的数据类型

    MySQL的常见数据类型 数据类型是什么 数据类型是列 存储过程的参数 表达式和局部变量的数据特征 它决定了数据的存储格式 代表了不同的信息类型 有一些数据是要存储为数字的 数字当中有些是要存储为整数 小数 日期型等 MySQL常见的数据类
  • 【第十四届蓝桥杯三月真题刷题训练——第 24 天 (3.27)& 旋转 & 附近最小 & 扫地机器人 & 窗口】

    第一题 旋转 import java util Scanner public class Main static int N 300 static int a new int N N static int b new int N N pub
  • 数模培训第二周——图论模型

    图论中最短路算法与程序实现 图论中的最短路问题 包括无向图和有向图 是一个基本且常见的问题 主要的算法有Dijkstra算法和Floyd算法 Floyd算法 简介 Floyd Warshall算法 英语 Floyd Warshall alg
  • 机器学习入门-数值特征-时间特征处理

    我们可以将一连串的时间特征进行拆分 比如 2015 03 08 10 30 00 360000 00 00 我们可以将其转换为日期类型 然后从里面提取年 月 日等时间信息 对于一些hour month等信息 我们也可以使用pd cut将ho
  • 单个IMU实现精确的轨迹重构

    惯性传感器 IMU 被广泛用于导航 运动状态研究 人体运动和步态分析等领域 然而 由于IMU的固有误差和测量误差 尤其是漂移误差 很少有人尝试基于IMU实现精确的轨迹重建 尤其是使用单个IMU 尽管如此 与视觉 红外线和超声波定位技术相比
  • C#——反射和特性

    元数据 程序是用来处理数据的 文本和特性都是数据 而我们程序本身这些也是数据 有关程序及其类型的数据被称为元数据 他们保存在程序的程序集中 反射 程序在运行时 可以查看其它程序集或其本身的元数据 一个运行的程序查看本身的元数据或者其他程序集
  • Java中基本类型自动转换与强制转换

    类型转换 Java 语言是一种强类型的语言 强类型的语言有以下几个要求 变量或常量必须有类型 要求声明变量或常量时必须声明类型 而且只能在声明以后才能使用 赋值时类型必须一致 值的类型必须和变量或常量的类型完全一致 运算时类型必须一致 参与
  • Python学习(3):批量修改文件名(以excel文件为例)

    coding utf 8 import os dir input 请输入文件路径 for root dirs files in os walk dir for i in range len files filename files i ne
  • python django 学习第3天 文件长传

    在根目录下新建media目录 在settings py 加入代码 为上传文件操作做准备 MEDIA ROOT os path join BASE DIR media MEDIA URL media 做一个新闻调查页面 在views 中加入
  • bash 括号(小括号,双小括号,中括号,双中括号,大括号)

    小括号 和大括号 主要包括一下几种 var cmd 和 exp var string var string var string var string var pattern var pattern var pattern var patt
  • 计算机网络运输层运输层协议概述

    运输层协议概述 进程之间的通信 下图说明运输层的作用 可以看出网络层为主机之间提供逻辑通信 而运输层为应用进程之间提供端到端的逻辑通信 根据应用程序的不同需求 运输层有两种不同的运输协议 1 面向连接的TCP 2 无连接的UDP 运输层的两
  • Vue-cli3更改项目logo图标

    1 图标切成对应大小 2 图标名称后缀与vue原有图标logo名称 后缀一致 favicon ico 并替换 3 vue项目根目录下 新建 vue config js 添加下列代码 module exports pwa iconPaths
  • 网络爬虫 - 1 网络爬虫基本概念和相关工具

    网络爬虫基本概念和相关工具 1 基本概念 1 什么是网络爬虫 web crawler 以前经常称之为网络蜘蛛 spider 是按照一定的规则自动浏览万维网并获取信息的机器人程序 或脚本 曾经被广泛的应用于互联网搜索引擎 使用过互联网和浏览器
  • Linux环境下的VScode使用教程

    前言 1 对于学习本文需要先有自行安装好VMware 对VMware有简单的了解 2 对于绝大多数使用Linux的人而言 经常在Windows环境下使用source insight进行编译程序 然后利用FileZilla将Windows的文