VSCode 是什么|极客教程 (geek-docs.com)
windows版本的VScode和ubuntu版本的VScode差不多一样的,只是有一点差别,注意区分
终端
Ubuntu好用的终端:Terminator
sudo apt install terminator
Windows10好用的终端:Windows Terminal
Microsoft Store搜索,即可安装
VScode常用插件:
Chinese (Simplified) (简体中文) 中文语言包
var-translate-en ,fanyi (滚轮翻译) 翻译插件
Snippets 代码模板 VSCode中snippets(代码模板)的使用
vscode-icons 文件带图标
error lens 错误提示
Bracket Pair Colorizer 括号染色
Prettier - Code formatter 格式化代码(统一)
Path Intellisense 相对路径自动补全
Code Runner 直接在 VSCode 中运行各种脚本和代码
JavaScript (ES6) code snippets 快捷键补全代码
GitHub Copilot AI生成代码
CodeGeeX AI生成代码,自动提示补全
IntelliCode AI辅助写代码
LeetCode with labuladong 可视化运行过程
开发环境
Python
Python ,pylance (需要设置), Jupyter, Python Extension Pack (多个插件集中)
Python Preview (预览 Python 代码的运行结果和效果)
C/C++
C/C++ ,C/C++ Extension Pack , C/C++ Themes, CMake ,CMake Tools ,
C/C++ Project Generator
前端:
VSCode编辑器直接打开默认浏览与Live Server开启本地服务器_哔哩哔哩_bilibili
HTML CSS Support
Auto Close Tag 自动完成右侧标签的填充
Live Server (html)实时预览
Auto Rename Tag 自动修改标签名
CSS Peek css定位器 快速定位标签
Javascript Code Snippets 提供很多 JS 代码块提示
Quokka.js 显示运行时值
学Emmet语法
MySQL
MySQL , SQLTools (管理数据库)
Java
Language Support for Java(TM) by Red Hat
一般不用vscode写Java代码,因为Java工程比较庞大
ROS有关的插件
ROS , 运行ros的插件
Rosbag Preview 数据预览
Msg Language Support ,对 ROS 和文件的基本语言支持
URDF , 对 .urdf的文件支持,描述,仿真
XML
YAML
PBM/PPM/PGM Viewer for Visual Studio Code
Markdown文件的插件
Markdown All in One 方便写Markdown文件
Markdown Preview Enhanced 预览Markdown效果
Paste Image 方便把图片插到Markdown
辅助添加
GitLens Git 代码管理插件
Remote SSH 远程连接
Regex Previewer 创建正则表达式的预览
Bookmarks 源码阅读,方便跳转
Codelf 给变量起名的神器
koroFileHeader 函数的说明,高级注释 /** @bref */
Cortex-Debug 调试器
Tabnine AI助手
Better Comments 将注释分为警告、询问、待办、重点等几大类
Search/Translate Hero - Google/...... 在VSCode选中,右键到浏览器搜索
Settings Sync
把你vscode所有的设置内容同步到 Github,方便移植到新设备
shellman Linux shell 脚本辅助工具
Power Mode 一款超级炫酷的编辑代码的插件 Power Mode
Docker
https://blog.csdn.net/u011262253/article/details/113879997
使用VScode
!表示代码模板
命令面板中输入 > 表示 调用插件的命令打开: ctrl + Shift + P
这个命令它会打开 VsCode 命令窗口,在这个窗口下输入上述的插件名称就能知道这个插件支持哪些特性了,顺带还会说明特性快捷键。
windows版本配置C++环境
下载编译器,直接用DEV C++的得了
编译器路径 DEV C++/mingw64/bin/g++.exe
命令面板编译:
GCC Compiler
运行指令:main.exe
ubuntu版本配置C++环境
【ubuntu(Linux)安装Vs code并配置c++编译及cmake多文件编译】_ubuntu vs code-CSDN博客
- lauch.json负责的是启动任务,执行文件(可执行文件)
- tasks.json负责的是配置相关任务。简单来说就是负责编译链接生成可执行文件,其实就是执行终端的编译指令[g++ -g main.cpp -o main.o]。所以在执行launch.json文件之前必须先执行tasks.json
- launch.json和tasks.json通过launch.json中的preLaunchTask关联起来。launch.json中的preLaunchTask是为了启动tasks.json的,所以preLaunchTask对应的标签应该与task.json一致。
安装环境包和库,把头文件include和库文件lib移动到 /usr/local/include或lib下,方便引用
vscode配置环境,其实主要就解决两个问题,一个是头文件包含,一个是库文件搜索。头文件包含在c_cpp_properties.json中解决,库文件包含则要继续修改tasks.json
点击调试图标--左上角--创建launch.json
命令面板输入:C/C++:编辑配置(json),创建c_cpp_properties.json
点击运行按钮,创建tasks.json
点击设置,点击右上角的 打开设置(json) ,创建settings.json
注意!vscode代码中(ubuntu),有关路径的都用绝对路径,相对路径会有问题
安装库: apt install gcc g++
配置.vscode下的launch.json文件
修改:"program": "${fileDirname}/${fileBasenameNoExtension}",
添加:"preLaunchTask": "build",//均为build
"externalConsole": true,
配置.vscode下的tasks.json文件
"label": "build",//均为build
"${fileBasenameNoExtension}"
其中,"args":里的参数非常重要,要编译完所有的.cpp文件
"args": [
"-fdiagnostics-color=always",
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileBasenameNoExtension}"
],
配置opencv环境
在c_cpp_properties.json中添加头文件路径
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/",
"/usr/local/include/opencv4",
"/usr/local/include/opencv4/opencv2"
],
按键 ctrl+shift+p命令面板:
输入 C/C++:添加调试配置 -->g++生成和调试活动文件 。会生成tasks.json文件
将下方代码添加到 tasks.json 中的 args 的-o下面
"args": [
"-I", "/usr/local/include",
"-I", "/usr/local/include/opencv4",
"-I", "/usr/local/include/opencv4/opencv2",
"-L", "/usr/local/lib",
"-l", "opencv_aruco",
"-l", "opencv_bgsegm",
"-l", "opencv_bioinspired",
"-l", "opencv_calib3d",
"-l", "opencv_ccalib",
"-l", "opencv_core",
"-l", "opencv_datasets",
"-l", "opencv_dnn_objdetect",
"-l", "opencv_dnn",
"-l", "opencv_dpm",
"-l", "opencv_face",
"-l", "opencv_features2d",
"-l", "opencv_flann",
"-l", "opencv_freetype",
"-l", "opencv_fuzzy",
"-l", "opencv_hfs",
"-l", "opencv_highgui",
"-l", "opencv_imgcodecs",
"-l", "opencv_img_hash",
"-l", "opencv_imgproc",
"-l", "opencv_line_descriptor",
"-l", "opencv_ml",
"-l", "opencv_objdetect",
"-l", "opencv_optflow",
"-l", "opencv_phase_unwrapping",
"-l", "opencv_photo",
"-l", "opencv_plot",
"-l", "opencv_reg",
"-l", "opencv_rgbd",
"-l", "opencv_saliency",
"-l", "opencv_shape",
"-l", "opencv_stereo",
"-l", "opencv_stitching",
"-l", "opencv_structured_light",
"-l", "opencv_superres",
"-l", "opencv_surface_matching",
"-l", "opencv_text",
"-l", "opencv_tracking",
"-l", "opencv_videoio",
"-l", "opencv_video",
"-l", "opencv_videostab",
"-l", "opencv_ximgproc",
"-l", "opencv_xphoto"
],
其中:“-I”指令后面的头文件坐在路径,“-L”后面是库文件所在路径,“-l” 后面是库的名字。
注意:此处有个坑就是,库的名字一定要按照上述文档中的方式写,即“opencv_XXX”,而不能按照传统上linux的库名“libopencv_XXX”,否则编译会报错说找不到函数库。
上面方法不推荐,我个人的想法是:在VScode中写C/C++代码,必须学会编译原理,必须会写cmakelists语法,使用cmake的方法编译运行。因为我们配置环境,如opencv ,都是下载官方源码,然后cmake编译安装。学ros2也需要写cmakelists.txt ,所以,会cmake会简单许多。
学习cmake语法:
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
需要安装构建工具:
sudo apt install ninja-build
在配置文件c_cpp_properties.json中添加:
"configurationProvider": "vector-of-bool.cmake-tools",
意思是C++的配置信息Cmake插件提供,这样包含的头文件就不会出现红色波浪线。
某些库并不是安装到了系统路径上(例如/usr/bin /usr/local/),所以直接使用Cmake命令是查找不出来的,因此我们需要在Cmake的参数中添加库的路径。
{"cmake.configureArgs":["-DCMAKE_PREFIX_PATH=/home/prototype/Desktop/Cuda-project/libtorch"],}
然后我们执行Cmake的confit命令,我们直接调用命令台工具(Ctrl + Shift + P),然后选择Cmake Config:
代码改变后需要make clean ,增加文件或改变了cmakelists.txt需要删除整个build目录。
cmakelists.txt写了头目录后,写代码直接包含头文件,不用再加目录了。(不需要路径)
为了方便,写个shell脚本编译运行:
rm -rf build
mkdir build
cd build
cmake ..
make
./test
常用快捷键
ctrl + Shift + P
打开命令面板
Alt + ← 返回上一步, 跳回上一个光标所在的位置: 或者鼠标侧面的前进后退键
ctrl + ` 打开终端
Alt + F12
以预览方式在当前页面显示定义
Shift + F12
查看光标所在函数或变量的引用
......
VSCode Python问题
VSCode Python同项目内的import问题
https://blog.csdn.net/weixin_39278265/article/details/119661991
在ros2中,在同一个目录下,从file.py import class时,不需要加.py后缀,而且,要在前面加上功能包的名称,就行了。如:
import sys
sys.path.append('/home/fishros/projects/fish/src/decision/decision')
from decision.subscrib_referee import SubReferee
VSCode Python代码里的路径问题:
VSCode 写Python代码,如果用相对路径,多少都是有些问题的,所以,必须用绝对路径。
用相对路径的话,需要添加
import sys
sys.path.append('工作区路径')
......